簡介
項(xiàng)目中有一個(gè)EditText,需要鍵盤中的回車事件。原本的寫法:
EditText屬性設(shè)置:
android:imeOptions="actionSearch"
android:singleLine="true"
設(shè)置為單行,回車統(tǒng)一顯示為“搜索”
private TextView.OnEditorActionListener queryEdit = new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
String query = inputView.getText().toString().trim();
if (actionId != EditorInfo.IME_ACTION_SEARCH || TextUtils.isEmpty(query)) return false;
KeyboardUtils.hideSoftKeyboard(mContext, inputView);
if (searchType == Classical_type) {
Intent intent = new Intent(mContext, SuggestResultActivity.class);
intent.putExtra(SuggestResultActivity.INTENT_QUERY, query);
startActivity(intent);
} else {
Intent intent = new Intent(mContext, DetailActivity.class);
intent.putExtra(DetailActivity.IntentWords, query);
intent.putExtra(DetailActivity.IntentAncientModel, false);
startActivity(intent);
}
return true;
}
};
在OnEditorActionListener的OnEditorAction方法中對(duì)actionId判斷是否是IME_ACTION_SEARCH。
原本這段邏輯么有問題,后來想著把sdk舍棄的singleLine數(shù)據(jù)換成maxLine,代碼更改如下:
android:imeOptions="actionSearch"
android:maxLine="1"
更改的代碼就一行,結(jié)果。。。android:imeOptions="actionSearch"這個(gè)屬性沒有生效。。
最后的解決方法,把maxLine改回singleLine.