获取 navigationView 的当前 Menu as R.menu

Get the current Menu of navigationView as R.menu

在我的应用程序中,当我点击 header
时,我需要更改导航视图的菜单 First state
Second state
我想获取 navigationView 的当前活动菜单以在两个菜单之间切换。这是我到目前为止写的:

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,我只想替换菜单。清除它然后充气是我找到的最佳选择。 如果您有更好的解决方案,请告诉我:)

您无法从菜单 class 中获取菜单 ID。 我建议您保留一个全局变量来保存您当前的菜单 ID。或者您可以比较第一项以了解哪个菜单当前处于活动状态。

已解决:

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";
    }
}