2016-01-15 6 views
0

В меню моего 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); 
    } 

Но как мне добраться до вложенного элемента меню, чтобы установить его, например,?

ответ

1

Установить группу с 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> 
Смежные вопросы