Android“adb shell输入keyevent KEYCODE_SEARCH”不起作用该怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (73)

我想在我的代码中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"/>
提问于
用户回答回答于

该设置android:imeOptions="actionSearch"不会让你的编辑文本接收KEYCODE_SEARCH事件。

如Android参考资料中所述:

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);
    }
}

扫码关注云+社区