Android 菜单中的复选框选项不起作用

Checkboxed option in Android menu does not work

我正在尝试将复选框添加到我的 Android 应用程序的菜单中。但我不知道为什么带有 android:checkable="true" 属性的项目有这个复选框,但表现得像其他项目。我必须用 java 代码写点什么吗?我可以读取值,但点击不会改变它的值...

我的menu\main.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_settings"
        android:title="@string/settings"/>
    <item
        android:id="@+id/menu_tests"
        android:title="@string/i_want_to_test"/>
    <item
        android:id="@+id/menu_translating"
        android:enabled="false"
        android:title="@string/i_want_to_translating"/>
    <item
        android:id="@+id/menu_funmade"
        android:checkable="true"
        android:title="Enable funmade"/>

</menu>

看:

最后一个选项与其他没有指定行为的选项一样。我可以点击并手动关闭并且状态不会改变。希望能帮到你。

安德烈

When the user selects an item from the options menu (including action items in the action bar), the system calls your activity's onOptionsItemSelected() method.

以下代码进入 Activity 中的 onOptionsItemSelected(MenuItem item) 方法。

代码:

switch (item.getItemId()) {
        case R.id.menu_settings:
            // Specify actions for the menu click
            return true;
        case R.id.menu_tests:
            // Specify actions for the menu click
            return true;
        case R.id.menu_translating:
            // Specify actions for the menu click
            return true;
        case R.id.menu_funmade:
            // Specify actions for the menu click
            if (item.isChecked()) {
                item.setChecked(false);
            } else {
                item.setChecked(true);
            }
            return true;
    }
    return super.onOptionsItemSelected(item);

您可以查看official docs关于可检查菜单的更多详细信息。