在 Android 中按左、右、上、下箭头时 onKeyDown 不会触发

Eas*_*tBK 1 keyboard android keyboard-events

InputMethodService 中的 OnKeyDown 回调适用于许多硬件键盘按钮,但它不会用左、右、上、下箭头触发。我该如何处理?

感谢您的关注!

bre*_*dan 6

您是否看过有关处理关键事件的开发人员文档?您可以尝试 onKeyDown 或 onKeyUp 仅接收一个事件并打印出 keyCode 以查看收到的内容:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
  Log.i("your tag", "Keycode: " + keyCode);
  switch (keyCode) {
    case KeyEvent.KEYCODE_DPAD_LEFT:
        leftKeyClick();
        return true;
    case KeyEvent.KEYCODE_DPAD_RIGHT:
        rightKeyClick();
        return true;
    case KeyEvent.KEYCODE_DPAD_UP:
        upKeyClick();
        return true;
    case KeyEvent.KEYCODE_DPAD_DOWN:
        downKeyClick();
        return true;
    default:
        return super.onKeyUp(keyCode, event);
  }
}
Run Code Online (Sandbox Code Playgroud)

KeyEvent对象参考提供了更多详细信息。如果您仍然没有检测到箭头键,那么您可能需要重写视图的 onKeyDown 或 onKeyUp 方法,这个类似的问题可能会有用。