我想截取硬件键盘上的按键事件。例如,当用户按下"a“时,我不希望它被写在EditText中。因此,当按下并释放"a"-key时,我返回true,但它无论如何都是用EditText编写的。怎么啦?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_A:
//Here it logs correct, but the letter appears in the EditText anyway
Log.d("Textboard","A");
return true;
default:
return super.onKeyDown(keyCode, event);
}
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_A:
//Here it logs correct, but the letter appears in the EditText anyway
Log.d("Textboard","A");
return true;
default:
return super.onKeyUp(keyCode, event);
}
}发布于 2015-05-20 19:47:26
活动的onKeyXXX()调用晚于EditText的onKeyXXX()。
如果你想拦截它,只需覆盖dispatchKeyEvent()即可。
https://stackoverflow.com/questions/30077136
复制相似问题