虽然通常输入法软键盘右下角会是回车按键
但我们经常会看到点击不同的编辑框,输入法软键盘右下角会有不同的图标
点击浏览器网址栏的时候,输入法软键盘右下角会变成“GO”或“前往”
而我们点击Google搜索框,输入法软键盘右下角会变成 放大镜 或者“搜索”
而决定这个图标的变换的参数就是EditText中的
android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等,这些意思都很明显
- <</SPAN>EditText
-
android:id="@+id/editText" -
android:layout_width="200dp" -
android:layout_height="wrap_content" -
android:imeOptions="actionSearch" -
/>
而其在Java代码中对应的值为EditorInfo.IME_ACTION_XXX
在代码中通过editText.setOnEditorActionListene
- EditText
editText = (EditText) contentView.findViewById(R.id.editText); -
editText.setOnEditorActionListene r(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
- <</SPAN>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);