Android 防止键事件-键代码输入

Android 防止键事件-键代码输入,android,Android,我有一个物理键盘连接到我的android设备。我有一个带有两个按钮的应用程序,以下两个函数用于处理KeyEvent: public boolean onKeyUp(int keyCode, KeyEvent event) { if(state==State.INI){ char unicodeChar = (char)event.getUnicodeChar(); Log.d("CHAR", "UP: "+Character.toString(unicod

我有一个物理键盘连接到我的android设备。我有一个带有两个按钮的应用程序,以下两个函数用于处理KeyEvent:

public boolean onKeyUp(int keyCode, KeyEvent event) {
    if(state==State.INI){
        char unicodeChar = (char)event.getUnicodeChar();
        Log.d("CHAR", "UP: "+Character.toString(unicodeChar)+" - "+Integer.toString(keyCode));
    }
    return true;
}

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(state==State.INI){
        char unicodeChar = (char)event.getUnicodeChar();
        Log.d("CHAR", "DOWN: "+Character.toString(unicodeChar)+" - "+Integer.toString(keyCode));
    }
    return true;
}
但是,即使它处理回车键也不能阻止系统处理它:s根据示例,我将return true更改为false,并且我可以使用按钮之间的箭头键导航,因此使用return true,它几乎可以处理除回车键以外的所有键:s

解析为:

public boolean dispatchKeyEvent(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        Log.d("CHAR","YOU CLICKED ENTER KEY");
            return false;
    }
    return super.dispatchKeyEvent(e);
};
决议如下:

public boolean dispatchKeyEvent(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        Log.d("CHAR","YOU CLICKED ENTER KEY");
            return false;
    }
    return super.dispatchKeyEvent(e);
};