Знайте, какой ресурс меню завышен

В моем приложении я раздуваю разные ресурсы меню, например:

public boolean onCreateOptionsMenu(Menu menu) {
    _menu = menu;
    if (/* CONDITION */) {
        getMenuInflater().inflate(R.menu.menu_activity_detail, _menu);
    } else {
        getMenuInflater().inflate(R.menu.menu_empty, _menu);
    }
    return true;
}

перед этим я сохраняю объект Menu для дальнейшего повторного использования, например, для создания нового меню при определенных обстоятельствах.

Теперь вопрос: есть ли способ узнать, какой ресурс я увеличил при создании своей активности, без ручного сохранения идентификатора R.menu.menu_res?


person Luca    schedule 14.07.2015    source источник
comment
Для чего тебе это? Для кликов пункта меню?   -  person FD_    schedule 14.07.2015
comment
В каком-то другом методе мне нужно изменить меню, но я не хочу каждый раз очищать и раздувать одно и то же меню. Сейчас делаю _menu.clear(); getMenuInflater().inflate(R.menu.menu_activity_detail, _menu);, но в большинстве случаев раздутое меню всегда одно и то же. Я хотел бы избежать этого.   -  person Luca    schedule 14.07.2015
comment
Не следует сохранять ссылку на меню. Почему бы вам не использовать метод invalidateOptionsMenu() вашей деятельности? Есть поддержкаInvalidateOptionsMenu() для обработки AppCompatActivity.   -  person Mimmo Grottoli    schedule 14.07.2015
comment
@MimmoGrottoli спасибо за решение! вы должны опубликовать это как ответ :)   -  person Luca    schedule 14.07.2015


Ответы (1)


Не следует сохранять ссылку на меню. Почему бы вам не использовать метод invalidateOptionsMenu() вашей деятельности? Есть поддержкаInvalidateOptionsMenu() для обработки AppCompatActivity.

person Mimmo Grottoli    schedule 14.07.2015