Android: Как добавить кнопку прослушивания в меню аппаратного меню?
В настоящее время я пытаюсь добавить прослушиватель кликов к кнопке меню. В настоящее время я просто помещаю свою логику onclick в метод onCreatePanelMenu и возвращаю false. Но это просто неправильно.
Есть ли более чистый способ?
В настоящее время код выглядит следующим образом:
@Override
public boolean onCreatePanelMenu(int featureId, Menu menu) {
Toast.makeText(this, "HALLO!", Toast.LENGTH_SHORT).show();
return false;
}
Ответы
Ответ 1
Поймайте ключевое событие внутри onKeyDown()
и добавьте туда свое действие.
Пример:
@Override
public boolean onKeyDown(int keycode, KeyEvent e) {
switch(keycode) {
case KeyEvent.KEYCODE_MENU:
doSomething();
return true;
}
return super.onKeyDown(keycode, e);
}
Просто замените doSomething()
вашими функциональными возможностями/методами.
Ответ 2
Если вам нужны образцы кода, вы можете попробовать следующее:
@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);
}
}
Вышеприведенное должно быть довольно само собой разумеющимся - оно устанавливает меню с параметрами для отображения предпочтений или выхода из системы.
/Никлас
Ответ 3
попробуйте это
http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu
Если вы хотите изменить меню параметров в любое время после первого созданный, вы должны переопределить метод onPrepareOptionsMenu()
поэтому система будет вызывать onPrepareOptionsMenu()
каждый раз, когда пользователь нажимает кнопку Menu
Ответ 4
onContextItemSelected
onOptionsItemSelected
Я верю, что вы ищете.