【发布时间】:2016-02-03 01:18:13
【问题描述】:
我在 Android 中有两个组,都具有单一的可检查行为。
<item
android:id="@+id/sort_item"
android:title="One">
<menu>
<group
android:id="@+id/menu_group_sort"
android:checkableBehavior="single">
<item
android:id="@+id/nav_sort_new"
android:title="@string/menu_new" />
<item
android:id="@+id/nav_sort_hot"
android:title="@string/menu_hot" />
<item
android:id="@+id/nav_sort_top"
android:title="@string/menu_top" />
</group>
</menu>
</item>
<item
android:id="@+id/filter_item"
android:title="Two">
<menu>
<group
android:id="@+id/menu_group_filter"
android:checkableBehavior="single">
<item
android:id="@+id/nav_category_all"
android:title="@string/menu_all" />
<item
android:id="@+id/nav_category_business"
android:title="@string/menu_business" />
<item
android:id="@+id/nav_category_technology"
android:title="@string/menu_technology" />
<item
android:id="@+id/nav_category_politics"
android:title="@string/menu_politics" />
</group>
</menu>
</item>
我想要的是当您从一个组中选择一个项目时,它在该组中是“单个”。发生的情况是两个组都在共享“选择的内容”,并且根本无法正常工作。
我已阅读有关此的所有其他帖子,但没有一个解决方案(如果有)有效。有人知道吗?这似乎是一个非常基本的事情..
【问题讨论】:
-
你能把你的代码贴在
onOptionsItemSelected(MenuItem item)你设置选中项目的地方吗?我将您的菜单 XML 复制到我的一个应用程序中,添加了以下语句:item.setChecked(true);,它按预期工作——每个组中的项目没有耦合。 -
@qbix 它实际上是在使用NavigationView,所以onNavigationItemSelected。我从不调用 setChecked(true);因为我认为 NavigationView 会自动完成。