Reputation: 431
I want to add a item to a navigation drawer programmatically. I use this xml for the navigation drawer:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:id="@+id/nav_group"
android:checkableBehavior="single">
<item
android:id="@+id/nav_item1"
android:title="@string/nav_text_item1" />
<item
android:id="@+id/nav_item2"
android:title="@string/nav_text_item2" />
</group>
<group
android:id="@+id/nav_group2"
android:checkableBehavior="single">
<item android:id="@+id/nav_menu" android:title="History">
<menu>
<!-- Add Items here-->
</menu>
</item>
</group>
<group
android:id="@+id/nav_group3"
android:checkableBehavior="single">
<item
android:id="@+id/nav_item3"
android:title="@string/nav_text_item3" />
<item
android:id="@+id/nav_item4"
android:title="@string/nav_text_item4" />
</group>
I want to show the category "History" with no items at the beginning and then add items to the category later. But how do I do this? I can add items and Submenus to the end of the List but not in the middle. Thank you for any help.
Upvotes: 3
Views: 7475
Reputation: 395
Use Menu.addSubMenu to create menu group and Menu.add to add menu item.
NavigationView navView = (NavigationView) findViewById(R.id.your_nav_view_id);
Menu m = navView.getMenu();
SubMenu menuGroup = m.addSubMenu("My menu group");
menuGroup .add("Foo");
menuGroup .add("Bar");
Or if you don't want to use menu group just add to the menu directly
NavigationView navView = (NavigationView) findViewById(R.id.your_nav_view_id);
Menu m = navView.getMenu();
MenuItem foo_menu_item=m.add("foo");
Upvotes: 2