2017-01-23 35 views
1

我有一個導航菜單,看起來像這樣 -添加菜單項中的一組動態的Android導航菜單

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:id="@+id/nav_home" 
    android:icon="@drawable/ic_home" 
    android:title="Home" /> 
<item 
    android:id="@+id/nav_logout" 
    android:icon="@drawable/ic_logout" 
    android:title="Logout" /> 

<item 
    android:id="@+id/choose_bus" 
    android:title="Choose a bus"> 
    <menu> 
     <group 
      android:id="@+id/group_select_bus" 
      android:checkableBehavior="single"> 
      <!--<item--> 
       <!--android:id="@+id/menu_option1"--> 
       <!--android:title="Bus 1" />--> 
      <!--<item--> 
       <!--android:id="@+id/menu_option2"--> 
       <!--android:title="Bus 2" />--> 
     </group> 
    </menu> 
</item> 

我想從活動添加menu_option1menu_option2動態。我試過,但沒有加入 -

@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    NavigationView navView = (NavigationView) findViewById(R.id.nav_view); 
    Menu menu = navView.getMenu(); 
    MenuItem item1 = menu.getItem(2); 
    SubMenu subMenu = item1.getSubMenu(); 
    subMenu.add("Bus 1"); 
    subMenu.add("Bus 2"); 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
    return true; 
    } 

回答

1

嘗試這樣

Menu menu = navView.getMenu(); 
menu.add(R.id.group_select_bus,Menu.NONE,Menu.NONE,Youritem); 
+0

試過這個,但仍然是一樣的。 – Anirban

+0

NavigationView navView =(NavigationView)findViewById(R.id.nav_view); Menu menu = navView.getMenu(); menu.add(R.id.group_select_bus,Menu.NONE,Menu.NONE,「BUS-1」); – Anirban

0

另一種方法是添加在導航菜單中的所有項目,然後改變自己的特定活動或片段可見一些東西,像

MenuItem item = mNavigationView.getMenu().getItem(5); 
item.setVisible(false); 
+0

我想動態添加它 – Anirban

+0

它會很難動態添加它與圖標 –