Получить текущее меню навигацииПросмотреть как R.menu

В моем приложении мне нужно изменить меню навигации, когда я нажимаю на заголовок
Первое состояние
Второе состояние
Я хотел, чтобы текущее активное меню моего навигационного представления переключалось между двумя меню. Вот что я написал до сих пор:

public void toggleMenu(){
    navigationView.getMenu().clear();
    navigationView.inflateMenu(R.menu.menu_trips);
}

Вместо того, чтобы все время раздувать одно и то же меню, мне нужно создать if, чтобы раздуть меню, которое в данный момент не активно, примерно так:

if (navigationView == R.menu.menu_trips){
   navigationView.inflateMenu(R.menu.activity_main_drawer);
} else if (navigationView == R.menu.activity_main_drawer){
   navigationView.inflateMenu(R.menu.menu_trips);
}

Я не хочу добавлять MenuItem, я просто хочу заменить меню. Очистить его, а затем надуть - лучший вариант, который я нашел. Если у вас есть лучшее решение, сообщите мне, пожалуйста :)


person p_0g_amm3_    schedule 17.04.2017    source источник


Ответы (2)


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

person mertsimsek    schedule 17.04.2017
comment
Спасибо за вашу быструю помощь! Я хочу получить идентификатор текущего меню, а не активного пункта меню. Или я должен просто сравнить первый элемент меню и получить на его основе активное меню? - person p_0g_amm3_; 17.04.2017
comment
Обновил мой ответ. - person mertsimsek; 17.04.2017

Решил это:

String activeMenu;

protected void onCreate(){
    activeMenu = "main";
}

public void toggleMenu(){
    navigationView.getMenu().clear();
    if (activeMenu.equals("main")){
        navigationView.inflateMenu(R.menu.menu_trips);
        activeMenu = "trips";
    } else if (activeMenu.equals("trips")){
        navigationView.inflateMenu(R.menu.activity_main_drawer);
        activeMenu = "main";
    }
}
person p_0g_amm3_    schedule 17.04.2017