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.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容