我有一个带物理键盘的android设备,品牌为UBX I6200S(Android 5.1.1)。 我的代码如下:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
Log.e("MainActivity", "dispatchKeyEvent");
final int keyCode = event.getKeyCode();
final int action = event.getAction();
if (action == KeyEvent.ACTION_UP || action == KeyEvent.ACTION_MULTIPLE) {
Log.e("MainActivity", "ACTION_UP || ACTION_MULTIPLE");
return true;
}
if (action == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
Log.e("MainActivity", "click KEYCODE_DEL");
return true;
}
if (keyCode == KeyEvent.KEYCODE_ENTER) {
Log.e("MainActivity", "click KEYCODE_ENTER");
return true;
}
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.e("MainActivity", "click KEYCODE_BACK");
return true;
}
if (keyCode == KeyEvent.KEYCODE_MENU) {
Log.e("MainActivity", "click KEYCODE_MENU");
return true;
}
Log.e("MainActivity", "click Other Keys");
return super.dispatchKeyEvent(event);
}
return super.dispatchKeyEvent(event);
}
当弹出软键盘时,当我单击设备物理键盘上的删除按钮时,日志
Log.e("MainActivity", "dispatchKeyEvent");
无法显示,但是当我单击设备物理键盘上的Enter键时,日志Log.e("MainActivity", "dispatchKeyEvent");
就会显示。
但是当隐藏软键盘时,
不管我点击什么键
日志Log.e("MainActivity", "dispatchKeyEvent");
可以显示
有人可以帮助我解决吗?因为我想在单击设备物理键盘上的删除按钮时执行某些操作。