我是android开发的新手,我试图让numpad enter做点事情(全局范围内,所以不在edittext中)。每当我尝试使用onKeyDown或onKeyUp拦截它时,它都将不起作用。除输入小键盘外,所有键均正常工作。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_NUMPAD_ENTER:
//Do Something
return true;
case KeyEvent.KEYCODE_ENTER:
//Do Something
return true;
case KeyEvent.KEYCODE_DPAD_CENTER:
//Do Something
return true;
}
return super.onKeyDown(keyCode, event);
}
如何全局拦截数字键盘的Enter键?
编辑:
我发现出于某些原因该键不在KeyCharacterMap中。有人知道如何解决这个问题吗?
答案 0 :(得分:0)
打开/关闭numlock可能有所不同。
此外,我相信onKeyDown事件无法捕获回车键。 您可能还需要检查视图的XML,以查看是否要限制键输入。
尝试一下:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
try
{
if(event.getAction()== KeyEvent.ACTION_UP)
{
System.out.println(event.getAction() + " " + event.getKeyCode() + " - " + (char) event.getUnicodeChar());
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
return true;
}
从那里您应该看到enterKey的keyCode和keyAction