对软键盘回车键检测

3,132 阅读1分钟

应用场景

我们常常看到,一些App应用软件中的搜索界面,我们会发现当点击输入框,显示软盘。在软盘上的Enter键会显示搜索两个字,当我们点击Enter键时,会跳转到搜索结果界面,这样的一个功能需求是怎么实现的呢?

主要重难点

Android软盘一般是伴随着EditText来显示和隐藏,那么对软盘的一些按钮的监听也需要借助于EditText。

软键盘的Enter键默认显示的是“完成”文本,在布局XML文件通过设置android:imeOptions来改变默认的“完成”文本。这里举几个常用的常量值:

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

Enter键事件捕捉代码

可以通过setOnEditorActionListener设置事件处理。

// 设置软键盘的Enter键显示文字
editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

// 对enter点击事件监听
editText.setOnEditorActionListener(newTextView.OnEditorActionListener() {
   public booleanonEditorAction(TextView v, intactionId,KeyEvent event) {
      if(actionId == EditorInfo.IME_ACTION_SEARCH|| (event !=null&& event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
         //执行搜索功能
        executeSearchEvent();
        return true;
      }
      return false;
   }
});


作者:吾非言
链接:https://www.jianshu.com/p/29fa3770b65d
来源:简书