Как определить, когда пользователь нажимает клавишу «Меню» на своем устройстве Android? - PullRequest
4 голосов
/ 25 ноября 2011

Я знаю, что могу переопределить onBackPressed() на более высоких уровнях API, чтобы определить, нажата ли клавиша возврата.Есть ли аналогичный способ сделать это для кнопки меню?Я не большой поклонник проверки кода ключа в KeyEvents.Спасибо!

Ответы [ 2 ]

16 голосов
/ 25 ноября 2011

Вы в поисках этого ????:

public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if (keyCode == KeyEvent.KEYCODE_MENU) {
            //do your work
            return true;
        }
        return super.onKeyDown(keyCode, event); 
    } 
5 голосов
/ 25 ноября 2011

Если вы просто хотите создать прослушиватель клавиш для кнопки меню, вам нужно переопределить onKeyDown и проверить код клавиши. Теперь, так как вы указали, что вы не большой поклонник этого, вы также можете переопределить onPrepareOptionsMenu , который вызывается каждый раз, когда нажимается кнопка меню и пользователю показывается меню. Я не уверен, вызывается ли это, если вы не указали меню внутри метода onCreateOptionsMenu .

...