1

Android デバイスに物理キーボードが接続されています。2 つのボタンを持つアプリケーションがあり、次の 2 つの関数が 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;
}

しかし、ENTER キーを処理しても、システムによる処理が妨げられることはありません:s たとえば、return true を false に変更し、矢印キーを使用してボタン間を移動できるので、return true を使用すると、ほとんどの場合に機能しますENTER :s を除くすべてのキー

4

1 に答える 1

2

以下で解決:

public boolean dispatchKeyEvent(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        Log.d("CHAR","YOU CLICKED ENTER KEY");
            return false;
    }
    return super.dispatchKeyEvent(e);
};
于 2013-03-28T13:53:40.343 に答える