Android maxLine属性导致android:imeOptions失效

简介

项目中有一个EditText,需要键盘中的回车事件。原本的写法:
EditText属性设置:

     android:imeOptions="actionSearch"
     android:singleLine="true"

设置为单行,回车统一显示为“搜索”

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数据换成maxLine,代码更改如下:

     android:imeOptions="actionSearch"
     android:maxLine="1"

更改的代码就一行,结果。。。android:imeOptions="actionSearch"这个属性没有生效。。
最后的解决方法,把maxLine改回singleLine.

你可能感兴趣的:(Android maxLine属性导致android:imeOptions失效)