Android弹出菜单可检查项不检查
我有一个简单的弹出菜单,但当我点击一个项目时,该项目不会被选中。为什么? 文件中包括: 图标菜单(从选项菜单)中的菜单项不能显示复选框或单选按钮。 单选按钮正在显示,但只有状态未更改 爪哇 XML文件Android弹出菜单可检查项不检查,android,checkbox,popupmenu,Android,Checkbox,Popupmenu,我有一个简单的弹出菜单,但当我点击一个项目时,该项目不会被选中。为什么? 文件中包括: 图标菜单(从选项菜单)中的菜单项不能显示复选框或单选按钮。 单选按钮正在显示,但只有状态未更改 爪哇 XML文件 <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"> <item android:id="@+id/so
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item android:id="@+id/sort_def"
android:title="@string/action_sort_def"
android:orderInCategory="1"
android:showAsAction="always" />
<item android:id="@+id/sort_asc"
android:title="@string/action_sort_name"
android:orderInCategory="2"
android:showAsAction="always" />
<item
android:id="@+id/sort_desc"
android:title="@string/action_sort_name_desc"
android:orderInCategory="3"
android:showAsAction="always"/>
</group>
屏风
**在任何情况下都要交换这些行**
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
至
if (item.isChecked()) item.setChecked(true);
else item.setChecked(false);
首先,可以将if checked else语句简化为
item.setChecked(!item.isChecked())
这样,它将始终从“真”切换→ 错误,反之亦然
但问题在于您有单选按钮,上面的语句所做的是检查组
,但您想要的是检查项
要获得所需的行为,可以使用item.getSubmMenu()
,然后对所需的特定子菜单项使用setChecked方法
例如:
//This will refer to the default, ascending or descending item.
MenuItem subMenuItem = item.getSubMenu().getItem(INDEX_OF_ITEM);
//Check or uncheck it.
subMenuItem.setChecked(!subMenuItem.isChecked());
//This will refer to the default, ascending or descending item.
MenuItem subMenuItem = item.getSubMenu().getItem(INDEX_OF_ITEM);
//Check or uncheck it.
subMenuItem.setChecked(!subMenuItem.isChecked());