weijunfeng
3/24/2019 - 3:37 AM

EditText中imeOptions属性使用及设置无效解决

EditText中imeOptions属性使用及设置无效解决
虽然通常输入法软键盘右下角会是回车按键

但我们经常会看到点击不同的编辑框,输入法软键盘右下角会有不同的图标

点击浏览器网址栏的时候,输入法软键盘右下角会变成“GO”或“前往”

而我们点击Google搜索框,输入法软键盘右下角会变成 放大镜 或者“搜索”

而决定这个图标的变换的参数就是EditText中的 android:imeOptions

android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等,这些意思都很明显

 <EditText
                android:id="@+id/setting_search_edit"
                android:layout_width="200dp"
                android:layout_height="20dp"
                android:layout_centerVertical="true"
                android:layout_marginLeft="30dp"
                android:background="@null"
                android:singleLine="true"
                android:imeOptions="actionSearch"
                android:textSize="11sp" />

在代码中通过editText.setOnEditorActionListener方法添加相应的监听,因为有些action是需要在代码中添加具体的相关操作的

 mSearchEdit.setOnEditorActionListener(new OnEditorActionListener() {

            @Override
            public boolean onEditorAction(TextView text, int actionId, KeyEvent event) {
                mSearch = true;
                if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                    nameList.clear();
                    idList.clear();
                    headpicList.clear();
                    for (int i = 0; i < blackListName.size(); i++) {
                        if (blackListName.get(i).contains(mSearchEdit.getText())) {
                            nameList.add(blackListName.get(i));
                            idList.add(blackListId.get(i));
                            headpicList.add(blackListHeadpic.get(i));
                        }
                    }
                    mAdapter = new BlackListAdapter(FilterlistActivity.this, mChecked, idList,
                            nameList, headpicList, photoLoader);
                    mListView.setAdapter(mAdapter);
                }
                return false;
            }
        });

设置无效时需要设置一下一项

1 将singleLine设置为true

2 将inputType设置为text