EditText监听回车¶
使用EditText时,有时候我们会需要监听输入的回车,以做出一些操作。 或者需要把回车变成“搜索”,“发送”或“完成”等等。
EditText为我们提供了一个属性imeOptions
用来替换软键盘中enter键的外观,如actionGo
会使外观变成“前往”。
需要同时设置android:inputType="text"
。
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionGo"
android:inputType="text" />
下面列出比较经常用到的几个属性以及替换的文本外观:
属性 | 说明 | 对应静态变量 |
---|---|---|
actionUnspecified | 未指定 | EditorInfo.IME_ACTION_UNSPECIFIED |
actionNone | 动作 | EditorInfo.IME_ACTION_NONE |
actionGo | 去往 | EditorInfo.IME_ACTION_GO |
actionSearch | 搜索 | EditorInfo.IME_ACTION_SEARCH |
actionSend | 发送 | EditorInfo.IME_ACTION_SEND |
actionNext | 下一项 | EditorInfo.IME_ACTION_NEXT |
actionDone | 完成 | EditorInfo.IME_ACTION_DONE |
设置的方法可以在布局文件中设置 android:imeOptions="actionNext"
或者在代码中 mUserEdit.setImeOptions(EditorInfo.IME_ACTION_NEXT);
接下来设置回车按键的监听事件 setOnEditorActionListener
et1.setOnEditorActionListener(mOnEditorActionListener);
// ......
private TextView.OnEditorActionListener mOnEditorActionListener = new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
Log.d(TAG, "actionId: " + actionId);
Log.d(TAG, "event: " + event);
return false;
}
};
onEditorAction
返回true,表示消费掉这个事件。
上面的actionId
对应的是android.view.inputmethod.EditorInfo
中的常量。
public static final int IME_ACTION_UNSPECIFIED = 0x00000000;
public static final int IME_ACTION_NONE = 0x00000001;
public static final int IME_ACTION_GO = 0x00000002;
public static final int IME_ACTION_SEARCH = 0x00000003;
public static final int IME_ACTION_SEND = 0x00000004;
public static final int IME_ACTION_NEXT = 0x00000005;
public static final int IME_ACTION_DONE = 0x00000006;
public static final int IME_ACTION_PREVIOUS = 0x00000007;
本站说明
一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~