Android" adb shell输入keyevent KEYCODE_SEARCH"不工作

时间:2015-04-13 03:32:34

标签: android shell keyboard adb

我想在我的代码中使用KEYCODE_SEARCH触发ADB事件。当我执行此命令时,我无法在键盘中看到任何操作。但如果我给"adb shell input keyevent KEYCODE_1"它是完美的。请使用ADB向我提供任何解决方案来解决搜索事件。

我目前的代码就像。

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
            performSearch();
            return true;
        }
        return false;
    }
});


<EditText android:imeOptions="actionSearch" 
    android:inputType="text"/>

感谢。

1 个答案:

答案 0 :(得分:9)

设置android:imeOptions="actionSearch"不会使您的修改文字能够接收KEYCODE_SEARCH个事件。

Android reference所述:

  

android:imeOptions
  您可以在与编辑器关联的IME中启用的其他功能   改善与您的应用程序的集成。常数在这里   对应于imeOptions定义的那些。

如果您想接收亚行发送的KEYCODE_SEARCH,则需要覆盖onKeyDown中的Activity并手动拨打onEditorAction

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_SEARCH){
        editText.onEditorAction(EditorInfo.IME_ACTION_SEARCH);
        return true;
    }else{
        return super.onKeyDown(keyCode, event);
    }
}

请注意,其他应用在发送KEYCODE_SEARCH事件时不会触发搜索,只会将焦点放在搜索框上