我的应用程序中有一个NavigationView。在NavView的菜单中,我有两个子菜单:
<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>在我的活动的onNavigationItemSelected()中,我希望能够找出所选项目在哪个子菜单中。我该怎么做呢?
发布于 2017-02-11 14:57:29
到目前为止,我还没有找到一个现有的解决方案,但是我已经找到了一个解决方法:
要以最小的额外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()来推断它所在的子菜单。
https://stackoverflow.com/questions/41822739
复制相似问题