Android菜单中的Checkboxed选项不起作用

时间:2015-08-29 06:49:00

标签: android xml checkbox menuitem android-menu

我正在尝试将复选框添加到我的Android应用的菜单中。但我不知道为什么具有android:checkable="true"属性的项目具有此方框的复选框,但行为与其他项目相同。我是否必须在java代码中写一些东西?我可以读取值但是点击不会改变它的值......

我的菜单\ 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>

查找

How menu looks

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

Andret

1 个答案:

答案 0 :(得分:1)

  

当用户从选项菜单中选择一个项目时(包括操作)   操作栏中的项目),系统调用您的活动   onOptionsItemSelected()方法。

以下代码包含在您的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关于可检查菜单的详细信息。