Asker
Asker

Reputation: 431

Add a item to a navigation drawer

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

Answers (1)

ArJ
ArJ

Reputation: 395

Use Menu.addSubMenu to create menu group and Menu.add to add menu item.

android developer manual link

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

Related Questions