Android: Как добавить кнопку прослушивания в меню аппаратного меню?

В настоящее время я пытаюсь добавить прослушиватель кликов к кнопке меню. В настоящее время я просто помещаю свою логику onclick в метод onCreatePanelMenu и возвращаю false. Но это просто неправильно.

Есть ли более чистый способ?

В настоящее время код выглядит следующим образом:

@Override public boolean onCreatePanelMenu(int featureId, Menu menu) { Toast.makeText(this, "HALLO!", Toast.LENGTH_SHORT).show(); return false; } 

Поймайте ключевое событие внутри onKeyDown() и добавьте туда свое действие.

Образец:

 @Override public boolean onKeyDown(int keycode, KeyEvent e) { switch(keycode) { case KeyEvent.KEYCODE_MENU: doSomething(); return true; } return super.onKeyDown(keycode, e); } 

Просто замените doSomething() вашими функциональными возможностями / методами.

Если вам нужны образцы кода, вы можете попробовать следующее:

 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.preferences: showPreferencesActivity(); return true; case R.id.logOff: logOff(); return true; default: return super.onOptionsItemSelected(item); } } 

Вышеприведенное должно быть довольно само собой разумеющимся – оно устанавливает меню с опциями для отображения предпочтений или выхода из системы.

/ Никлас

Попробуйте этот http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu

Если вы хотите изменить меню параметров в любое время после его создания, вы должны переопределить метод onPrepareOptionsMenu ()

Поэтому система будет вызывать onPrepareOptionsMenu() каждый раз, когда пользователь нажимает onPrepareOptionsMenu() Menu

onContextItemSelected

onOptionsItemSelected

Я верю, что вы ищете.