如何在android中覆盖软键盘keyPress事件?

时间:2016-02-17 07:06:07

标签: android android-activity keyboard android-softkeyboard android-keypad

我需要一个监听器来检测我的活动上的用户交互,该活动上附有一个片段,我已经覆盖了diapatchTouchEvent(),这对于触摸事件和硬键事件很有效,但它不起作用软键盘按键。

要拦截键盘触摸事件,我已尝试onUserInteraction()dispatchKeyEvents()onKeyUponKeyDown,但它们都不适用于软键盘。

有没有其他方法可以拦截Android中的软键盘事件?

对于上述查询,我​​已经浏览了这些链接:

https://stackoverflow.com/a/25620981/3954050

Android SoftKeyboard onKeyDown/Up not detecting 'alternative' keys

1 个答案:

答案 0 :(得分:1)

如果要拦截键盘事件,如已完成,或搜索或输入等,请在编辑文本中添加类似

的imeOption
<EditText
   ..../
  android:id="@+id/myEditText"
  android:imeOptions="actionSearch"/>

将EditorActionListener添加到该编辑文本中。

myEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            boolean handled = false;
            if (actionId == EditorInfo.IME_ACTION_SEARCH){
                //Do something
            }