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

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

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

4b9b3361

Ответ 1

Будьте осторожны с invalidateOptionsMenu(). Он воссоздает все меню. У этого есть много накладных расходов и reset встроенные компоненты, такие как 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);
    }
}

Ответ 2

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

Ответ 3

вы можете сделать это, передав объект 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;
    }
}

Ответ 4

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

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

Например:

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

Ответ 5

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

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

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

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