编辑框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 有很多可以自己多试试,这样就完成了从键盘中监听事件的过程,是不是很简单?

标签:edittext, 监听控件