我叫布鲁诺。不幸的是,我的按键有问题。
问题:当我按下键盘上的任何键并保持按下时,函数onKeyUp((被调用而不松开那把钥匙正确的行为是:当我们按下一个键时,函数onKeyDown((被调用,当释放该键时,onKeyUp((被调用。
我测试了一些Android模拟器,只有其中一些出现了这个问题。我想使用Android Studio Emulator。例如,Bluestacks不会出现这种问题。我不知道为什么在一些模拟器上会出现这种情况。
这是我的代码,MainActivity.java:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.i("KEYTEST", event.toString());
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.i("KEYTEST", event.toString());
return super.onKeyDown(keyCode, event);
}
当我按下"D"键并保持按下状态时,日志将打印:日志图像
发生了什么?某些模拟器与葡萄牙语键盘结合使用有问题吗?
不要对字母使用onKeyUp和onKeyDown。大多数键盘不使用它们,它们通过InputMethodConnection的commitText((函数发送数据。这完全绕过了钥匙向上/向下系统。这些仅适用于实体按钮。比如音量按钮,或者通过蓝牙连接的硬件键盘。