【发布时间】:2017-01-22 07:52:27
【问题描述】:
在为 Chromebook 准备我的 Android 应用程序并与物理键盘一起使用时,我想在 EditText 中区分从物理键盘接收“Enter”(keyEvent 66)和“Shift+Enter”(显然也是 keyEvent 66)。我尝试了许多不同的解决方案,例如
- dispatchKeyEvent(KeyEvent 事件) 在活动中。然而 event.getModifiers() 总是返回 0,event.getMetaState() 也是如此。 keyEvent.isShiftPressed() 总是返回 false。
- onKeyDown(int keyCode, KeyEvent keyEvent) 在活动中具有相同的结果。 keyEvent.isShiftPressed() 也总是返回 false。
我还没有找到使用 onKeyUp()、onKeyPreIme()、editText.setOnKeyListener(...) 或使用 editText.addTextChangedListener(new TextWatcher() {...}) 的方法。我在获取 Enter 事件时没有遇到任何问题,但是 Shift+Enter 在我尝试过的所有方式中都与 Enter 事件没有区别。所以我的问题是:有没有其他 Android Dev 找到一种方法来正确地从物理键盘捕获 Shift+Enter?
【问题讨论】:
标签: android keyboard chromebook