2017-01-24 5 views
0

私のアプリにNavigationViewがあります。どのように私はこれを行うだろう、私の活動のonNavigationItemSelected()MenuItemのサブメニューを確認する

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:id="@+id/nav_group_one" 
     android:title="SubMenu A"> 
     <menu> 
      <item 
       android:checkable="true" 
       android:title="One"/> 
      <item 
       android:checkable="true" 
       android:title="Two"/> 
     </menu> 
    </item> 

    <item 
     android:id="@+id/nav_group_two" 
     android:title="SubMenu B"> 
     <menu> 
      <item 
       android:checkable="true" 
       android:title="Three"/> 
      <item 
       android:checkable="true" 
       android:title="Four"/> 
     </menu> 
    </item> 
</menu> 

私が選択した項目がどのサブメニューを把握できるようにしたいと思います:。NavViewのメニューの中に、私は2つのサブメニューがありますか?

答えて

0

これまでのところ、私はこの時点では、既存の解決策を見つけていない、しかし私は、回避策を発見した:

グループ内のサブメニュー項目の各セットをラップ、最小限の追加XMLのオーバーヘッドでこの問題を解決するには、 IDを持つ:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:id="@+id/nav_group_one" 
     android:title="SubMenu A"> 
     <menu> 
      <group id="@+id/nav_group_wrapper_one"> 
       <item 
        android:checkable="true" 
        android:title="One"/> 
       <item 
        android:checkable="true" 
        android:title="Two"/> 
      </group> 
     </menu> 
    </item> 

    <item 
     android:id="@+id/nav_group_two" 
     android:title="SubMenu B"> 
     <menu> 
      <group id="@+id/nav_group_wrapper_two"> 
       <item 
        android:checkable="true" 
        android:title="Three"/> 
       <item 
        android:checkable="true" 
        android:title="Four"/> 
      </group> 
     </menu> 
    </item> 
</menu> 

この方法で、一つは単にそれが内に含まれるサブメニューを推測するitem.getGroupId()を呼び出すことができます。

関連する問題