Подтвердить что ты не робот

Что такое onPrepareOptionsMenu?

Я хочу сделать Option Menu для Android, я посетил этот сайт. В своем script я нашел onPrepareOptionsMenu, я пытаюсь скомпилировать и запустить с использованием Android 2.3.3 компилятора с и без onPrepareOptionsMenu, оба работают, но я не видел никакой разницы.

public boolean onCreateOptionsMenu(Menu menu){
//code here
}

public boolean onOptionsItemSelected(MenuItem item){
//code here
}

public boolean onPrepareOptionsMenu(Menu menu){
//code here
}

Что на самом деле делает метод onPrepareOptionsMenu? Этот метод важен? Могу ли я просто удалить метод?


Добавление

О, я также слышал о Action Bar в Android 3.0, он говорит, что Action Bar является альтернативным способом make Option Menu, и он использует onPrepareOptionsMenu. Правильно ли это?

Спасибо...

4b9b3361

Ответ 1

Взгляните в API:

Подготовьте меню стандартных параметров экрана, которое будет отображаться. Это вызывается прямо перед отображением меню при каждом его показе. Вы можете использовать этот метод для эффективного включения/выключения элементов или иным образом динамического изменения содержимого.

Ответ 2

Если вы хотите изменить меню до того, как оно будет показано пользователю, вы можете поместить код для этого в onPrepareOptionsMenu. Я использовал это динамически, чтобы отключить некоторые параметры меню в некоторых случаях.

В качестве примера, когда можно было бы отключить опцию меню, у меня было приложение, в котором был указатель назначения. Одним из моих вариантов меню было вычисление маршрута к месту назначения. Однако, если пункт назначения не указан, этот параметр не применяется, поэтому я использовал onPrepareOptionsMenu, чтобы отключить этот пункт меню, если он не применим.

От Android 3.0 и выше есть ActionBar, который является панелью меню. Самые важные элементы входят в сам ActionBar, но затем происходит переполнение, когда на панели действий недостаточно места. Можно указать, что пункты меню всегда должны находиться в меню переполнения и никогда не находиться на панели действий. На некоторых устройствах переполнение панели действий соответствует постоянной кнопке меню на устройстве, тогда как на других устройствах, которые не имеют кнопки меню, меню переполнения отображается с правой стороны панели действий в виде трех вертикальных точек.

Ответ 3

onCreateOptionsMenu вызывается один раз, когда ваша деятельность сначала создается. Если он возвращает false, меню параметров не отображается, а onPrepareOptionsMenu никогда не вызывается.

Если onCreateOptionsMenu возвращает true, onPrepareOptionsMenu также вызывается перед отображением активности, а также каждый раз, когда меню параметров недействительно. Используйте onPrepareOptionsMenu, если вам нужно включить/отключить, показать/скрыть или добавить/удалить элементы после его создания.

Если ваше меню не изменяется, используйте onCreateOptionsMenu.