Событие клавиши возврата Android — при отображении программной клавиатуры

Я пытаюсь поймать событие клавиши «Назад», используя boolean onKeyDown(int keyCode, KeyEvent event) при отображении программной клавиатуры. Но это не работает...


person Shamitha    schedule 10.11.2011    source источник
comment
Вот, кстати, поймал событие клавиши возврата. stackoverflow.com/a/40340213/3957916   -  person Sumit Saurabh    schedule 31.10.2016


Ответы (2)


переопределить этот метод Edittext:

@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
        if (keyCode == KeyEvent.KEYCODE_BACK) {
        //put your logic here
        }
    return super.onKeyPreIme(keyCode, event);
}

вы получите событие на обратном нажатии внутри, если.

person Chirag Shah    schedule 09.04.2013

Попробуйте следующее:

if(event.getKeyCode() == KeyEvent.KEYCODE_BACK){
//your code
return true;
}

Предупреждение: вы сообщаете системе Android, что вы уже обработали нажатие клавиши «Назад», и оно не будет работать должным образом внутри приложения (не выйдет).

person Mohamed_AbdAllah    schedule 10.11.2011
comment
onKeyDown() не вызывается, если SoftKeyboard не скрыта. - person Graeme; 30.07.2012
comment
Из документа я думаю, что это возможно: нажатия клавиш на программных клавиатурах, как правило, НЕ запускают этот прослушиватель, хотя некоторые могут сделать это в некоторых ситуациях - person Mohamed_AbdAllah; 30.07.2012