Android добавляет пункт меню во время выполнения - PullRequest
2 голосов
/ 21 марта 2011
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
            case R.id.about:
            Intent i = new Intent(this, impresszum.class);
            startActivity(i);

                return true;
            case R.id.quit:
                AppUtils.ExitTheApplication();
                return true;
            default:
                return super.onOptionsItemSelected(item);
    }
}

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

1 Ответ

3 голосов
/ 20 января 2013

Пункты меню не обязательно связаны с действием, как в разделе, предложенном Шелли, и в этом случае вы можете позвонить invalidateOptionsMenu(), чтобы удержать объект меню, чтобы "обновить" меню в последующем вызове onPrepareOptionsMenu().

С того же сайта разработчиков Android :

На Android 2.3.x и ниже системные вызовы onPrepareOptionsMenu () каждый раз, когда пользователь открывает меню параметров (нажимает кнопку меню).

На Android 3.0 и выше, меню опций считается всегда открыть, когда элементы меню представлены в панели действий. Когда событие происходит, и вы хотите выполнить обновление меню, вы должны позвонить invalidateOptionsMenu () , чтобы запросить системный вызов onPrepareOptionsMenu () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...