从NavigationView

问题描述:

获取子菜单在我NavigationView的菜单在抽屉里我嵌套菜单:从NavigationView

<item android:title="View options"> 
     <menu> 
       <item 
        android:id="@+id/nav_gallery" 
        android:icon="@android:drawable/ic_menu_gallery" 
        android:title="Gallery" 
        android:enabled="true" 
        android:checked="true"/> 
       <item 
        android:id="@+id/nav_slideshow" 
        android:icon="@android:drawable/ic_menu_slideshow" 
        android:title="Slideshow" 
        android:enabled="true" 
        android:checked="false"/> 
     </menu> 
    </item> 

我知道如何得到一个标准的菜单项,在DrawerLayout回调方法之一:

public void onDrawerOpened(View drawerView) { 
     NavigationView navigationView = (NavigationView) drawerView.findViewById(R.id.nav_view); 
     Menu mm = navigationView.getMenu(); 
     MenuItem m = mm.findItem(R.id.nav_regular_menu_item; 
     m.setChecked(true); 
    } 

但是,我如何得到一个嵌套的菜单项,设置它检查例如?

围绕项目设置android:checkableBehaviour =“single”组,然后navigationView.getMenu().findItem(R.id.nav_gallery).setChecked(true);应该为你工作。

<item android:title="View options"> 
     <menu> 
      <group 
       android:id="@+id/submenu" 
       android:checkableBehavior="single"> 
      <item 
       android:id="@+id/nav_gallery" 
       android:icon="@android:drawable/ic_menu_gallery" 
       android:title="Gallery"/> 
      <item 
       android:id="@+id/nav_slideshow" 
       android:icon="@android:drawable/ic_menu_slideshow" 
       android:title="Slideshow"/> 
      </group> 
     </menu> 
    </item>