我目前正在开发一个练习程序,该程序可处理各种键盘输入,以便我可以了解它们如何在使用 Java 的 Android 应用程序中工作。但我很难让
ESC
键被识别。下面的代码不起作用。有没有人曾经设法让 ESC
键在应用程序中工作?真的可以吗?
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
boolean handled = false;
if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_ESCAPE) {
textView.setText("Escapekey pressed");
handled = true;
}
return handled;
}
});
总而言之,我希望程序能够识别
ESC
键。
Android模拟器似乎不会将此密钥转发给应用程序,就像例如功能键。从真实键盘在真实设备上接收这些按键事件对我来说效果很好。
我在 Android 9 及更高版本中遇到了这个问题。在这些版本中,“Esc”键盘键会生成
KeyEvent.KEYCODE_BACK
,而不是 Android 6 中的 KeyEvent.KEYCODE_ESCAPE
(我尚未测试 Android 7 和 8)。所以我只是将此代码添加到我的应用程序中:
if( code == KeyEvent.KEYCODE_BACK ) {
code = KeyEvent.KEYCODE_ESCAPE; // Обходим глюки новых Андроидов...
}