簡介
項目中有一個EditText喷屋,需要鍵盤中的回車事件。原本的寫法:
EditText屬性設置:
android:imeOptions="actionSearch"
android:singleLine="true"
設置為單行撤蚊,回車統(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方法中對actionId判斷是否是IME_ACTION_SEARCH初澎。
原本這段邏輯么有問題金抡,后來想著把sdk舍棄的singleLine數(shù)據換成maxLine,代碼更改如下:
android:imeOptions="actionSearch"
android:maxLine="1"
更改的代碼就一行举农,結果荆针。。。android:imeOptions="actionSearch"這個屬性沒有生效航背。秸妥。
最后的解決方法,把maxLine改回singleLine.