编辑框EditText中监听键盘事件
最近看到新浪微博搜索页面竟然去掉了搜索按钮,直接在键盘右下角出现了个神奇的搜索图标,点击就可以搜索,瞬间感觉方便了很多,查询了官方文档,发现早就有这个API了。
原来EditText中可以约束键盘中的一些特殊按键,这样可以实现在键盘点击 “完成” “搜索” 等按钮的时候,触发某些事件,下面以去往为例子,简单实现。
首先得在需要用的EditText的布局文件中设置 imeOptions,代码如下:
<EditText android:id="@+id/editText"
android:imeOptions="actionGo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
singleLine="true"
android:hint="特殊按钮-去往" />
上述代码中,设置的是一个“去往”(”GO“)按钮,在当前EditText中唤出软键盘时,右下角就会出现“去往”(”GO“)按钮,这时候,我们就可以在代码中监听EditText的OnEditorActionListener事件,实现指定Action动作,监听代码如下:
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_GO) {
go();
return true;
}
return false;
}
});
在go()方法中实现具体的逻辑,当然 imeOptions 和 IME_ACTION 有很多可以自己多试试,这样就完成了从键盘中监听事件的过程,是不是很简单?