Intereting Posts
Событие Touchstart никогда не запускается на Android Chrome при первом загрузке страницы Ошибка при экспорте архивного файла или файловой системы с помощью Eclipse (Android) Предоставление закрытых титров для потоков HLS на Android Как показать только сообщение из журнала (скрыть время, pid и т. Д.) В Android Studio Как включить Пробуждение в вариантах разработчика с использованием АБР? Как применить динамическую альфа-маску к тексту на Android Android getOrientation Azimuth загрязняется, когда телефон наклонен Ошибка раздувания класса android.webkit.WebView происходит спорадически в производстве Настройка параметров макета для элемента внутри галереи RuntimeException: ошибка раздувания фрагмента класса Отключить кнопку при нажатии Конвертация Android в исходный формат Разница между Kivy и Java для приложений для Android Android автономная документация и коды образцов Как сделать форму шестиугольника ImageView

Как я могу получить меню опций моей активности?

В некоторых методах моей деятельности я хочу проверить название меню или узнать, проверено ли оно или нет. Как я могу получить меню Activity. Мне нужно что-то вроде this.getMenu()

Solutions Collecting From Web of "Как я могу получить меню опций моей активности?"

Будьте осторожны с invalidateOptionsMenu() . Он воссоздает все меню. У этого есть много накладных расходов и сброс встроенных компонентов, таких как SearchView . Мне потребовалось некоторое время, чтобы SearchView почему мой SearchView «случайно» будет закрыт.

Я закончил тем, что захватил меню, отправленное Dark, а затем при необходимости вызовет onPrepareOptionsMenu(Menu) . Это соответствовало моему требованию без неприятных побочных эффектов. Gotcha: Обязательно выполните нулевую проверку, если вы вызываете onPrepareOptionsMenu() перед созданием меню. Я сделал это, как показано ниже:

 private Menu mOptionsMenu; @Override public boolean onCreateOptionsMenu(final Menu menu) { mOptionsMenu = menu ... } private void updateOptionsMenu() { if (mOptionsMenu != null) { onPrepareOptionsMenu(mOptionsMenu); } } 

Вызовите invalidateOptionsMenu () вместо передачи объекта меню.

Вы можете сделать это, передав объект Menu в свой класс Activity

 public class MainActivity extends Activity { ... ... private Menu _menu = null; @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); _menu = menu; return true; } private Menu getMenu() { //use it like this return _menu; } } 

Существует несколько методов обратного вызова, которые предоставляют меню в качестве параметра.

Возможно, вы захотите его манипулировать.

Например:

 onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) onCreateOptionsMenu(Menu menu) onCreatePanelMenu(int featureId, Menu menu) 

Там еще несколько, лучше всего загляните в документацию о деятельности и найдите нужный метод: http://developer.android.com/reference/android/app/Activity.html

Насколько я понял, что вы хотите здесь, это может помочь вам:

1. Обратитесь к этому руководству в меню опций .

2. Каждый раз, когда пользователь нажимает кнопку меню, вы можете проверить его название через getTitle() .

3. Или если вы хотите узнать, что последний пункт меню отмечен или выбран, когда пользователь не нажал кнопку меню, вам нужно сохранить настройки, когда пользователь нажимает.