美文网首页Android知识Android开发Android技术知识
Android maxLine属性导致android:imeOp

Android maxLine属性导致android:imeOp

作者: 三十二蝉 | 来源:发表于2017-03-23 06:32 被阅读547次

    简介

    项目中有一个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:imeOp

        本文链接:https://www.haomeiwen.com/subject/hytznttx.html