Я делаю приложение для Android. Когда пользователь нажимает на кнопку аппаратного меню устройства, я хочу открыть настраиваемое всплывающее меню с параметрами, относящимися к моей деятельности. Согласно документации по Android, можно создавать только контекстное меню и меню опций, и нет доступа к функциям кнопки меню аппаратного обеспечения. Как это сделать?Как добавить функции в меню, связанные с кнопкой меню оборудования?
ответ
Более новые устройства Android (работающие под управлением 3.0+) больше не нуждаются в наличии кнопки меню оборудования (source). Вы можете создать меню, следующее за this tutorial. Когда вы создаете меню опций, приложение позволит пользователю открыть его с помощью кнопки меню аппаратного обеспечения, если на устройстве есть устройство. Если это не так, на панели действий отобразится кнопка меню. (source).
Если вам по какой-либо причине необходимо обнаружить нажатие кнопки меню, вы можете сделать это, переопределив метод onKeyUp(int, KeyEvent)
вашего Activity
.
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
// do stuff
return true;
} else {
return super.onKeyUp(keyCode, event);
}
}
Если вам нужно открыть меню в коде, вы можете вызвать метод Activity.openOptionsMenu()
.
Мой ответ полностью основан на http://developer.android.com/guide/topics/ui/menus.html
Пожалуйста, прочитайте эту страницу для полной информации, описание и больше знаний о том, как это сделать
Создание XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_game"
android:icon="@drawable/ic_new_game"
android:title="@string/new_game"
android:showAsAction="ifRoom"/>
<item android:id="@+id/help"
android:icon="@drawable/ic_help"
android:title="@string/help" />
</menu>
Используйте этот код чтобы показать его:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}
Этот код используется для ручного перевода e clicks:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.new_game:
newGame();
return true;
case R.id.help:
showHelp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
- 1. Открытое меню переполнения с кнопкой меню оборудования
- 2. Как добавить пункт меню в меню правой кнопкой мыши Windows
- 3. Добавить элемент в меню правой кнопкой мыши
- 4. Добавить меню контекстного меню в закладки
- 5. связанные выпадающие меню с ajax
- 6. Как добавить приложение в меню аппаратного меню в Android?
- 7. Управление кнопкой меню устройства
- 8. Всплывающее меню рядом с кнопкой
- 9. Как добавить пункт меню в контекстное меню IDE в Delphi
- 10. Как добавить элементы контекстного меню правой кнопкой мыши?
- 11. Как добавить дополнительные меню в контекстном меню?
- 12. Как добавить раскрывающееся меню в раскрывающемся меню?
- 13. Как добавить раскрывающееся меню в строку меню
- 14. Как добавить подтверждение в меню выпадающего меню?
- 15. Как добавить меню параметров в меню Кнопка
- 16. Как я могу добавить элемент в меню «Папки» правой кнопкой?
- 17. Android - меню дисплея без заголовка или с кнопкой меню
- 18. В чем дело с кнопкой мягкого меню?
- 19. Выход в меню с обратной кнопкой
- 20. Зачем врезалось приложение при касании меню оборудования?
- 21. Excel VBA - Добавить подменю в пользовательское меню правой кнопкой мыши
- 22. CkEditor, Как добавить дополнительный пункт меню правой кнопкой?
- 23. Управление кнопкой меню сбой андроида
- 24. Щелкните правой кнопкой мыши (меню) в PowerBuilder
- 25. Отключить контекстное меню правой кнопкой?
- 26. Как отключить кнопку меню оборудования в моем приложении?
- 27. Добавить пользовательский пункт меню в щелчок правой кнопкой мыши событие
- 28. . Элемент меню sync с кнопкой панели инструментов
- 29. Android Map Api V2 с кнопкой меню
- 30. Бутстрап + вертикальная панель меню + с кнопкой обрыва
Хорошо, и как добавить параметры в меню? –
Пожалуйста, проверьте отредактированный (фактически, почти полностью новый :)) ответ. – zbr