Когда выскакивает программная клавиатура, когда я нажимаю кнопку удаления на физической клавиатуре устройства, метод dispatchKeyEvent вызываться не будет - PullRequest
0 голосов
/ 28 марта 2019

У меня андроид-устройство с физической клавиатурой, бренд 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"); не может отображаться, но когда я нажимаюКнопка ввода на физической клавиатуре устройства, может показывать журнал Log.e("MainActivity", "dispatchKeyEvent");.

Но когда софт-клавиатура скрыта, независимо от того, какую клавишу я нажимаю, журнал Log.e("MainActivity", "dispatchKeyEvent"); может показывать

кто-нибудь может помочь мне решить это?потому что я хочу что-то сделать, когда нажимаю кнопку удаления на физической клавиатуре устройства.

...