В настоящее время я пытаюсь добавить прослушиватель кликов к кнопке меню. В настоящее время я просто помещаю свою логику 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
Я верю, что вы ищете.