本文主要是介绍android EditText中imeOptions属性设置无效解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通常输入法软键盘右下角会是回车按键
但我们经常会看到点击不同的编辑框,输入法软键盘右下角会有不同的图标
点击浏览器网址栏的时候,输入法软键盘右下角会变成“GO”或“前往”
而我们点击Google搜索框,输入法软键盘右下角会变成 放大镜 或者“搜索”
而决定这个图标的变换的参数就是EditText中的 android:imeOptions
android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等,这些意思都很明显
- <EditText
- android:id="@+id/editText"
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:imeOptions="actionSearch"
- />
而其在Java代码中对应的值为EditorInfo.IME_ACTION_XXX
在代码中通过editText.setOnEditorActionListener方法添加相应的监听,因为有些action是需要在代码中添加具体的相关操作的
- EditText editText = (EditText) contentView.findViewById(R.id.editText);
- editText.setOnEditorActionListener(new OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView v, int actionId,
- KeyEvent event) {
- if (actionId == EditorInfo.IME_ACTION_SEARCH) {
- Toast.makeText(getActivity(), "1111111",Toast.LENGTH_SHORT).show();
- }
- return false;
- }
- });
然而当我们设置这一切后,却发现点击输入框,输入法键盘完全没变化,还是回车键
这并不是上面的属性和方法无效,而是我们还需要设置别的属性来使它们生效
经过试验 设置下面两个属性中的一个即可使这个属性生效(应该还有其他的属性也可以,没去试验)
1 将singleLine设置为true
2 将inputType设置为text
- <EditText
- android:id="@+id/editText"
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:imeOptions="actionSearch"
- android:singleLine="true"
- android:inputType="text"
- />
java代码设置
- editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
- editText.setInputType(EditorInfo.TYPE_CLASS_TEXT);
- editText.setSingleLine(true);
这篇关于android EditText中imeOptions属性设置无效解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!