检查未显示在“选项菜单”中

时间:2011-11-24 06:57:01

标签: android menu options checked

有时候做一些非常简单的事情,你会错过一些大事。我必须错过一些巨大的东西,因为我无处可去(并且在网上筛选一小时没有透露任何内容)。

我希望在菜单中包含带有复选标记的项目 - 就像简单的RadioGroup布局一样。我得到了菜单,但没有任何类型的复选标记。

这是res / menu / options_menu.xml:

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

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/item1"
            android:title="item1"
        />
        <item
            android:id="@+id/item2"
            android:title="item2"
        />
        <item
            android:id="@+id/item3"
            android:title="item3"
            android:checked="true"
        />
    </group>

</menu>

当然,这是我的活动中的相关方法:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);
    return true;
}

这就像我能做到的一样简单 - 关于我所缺少的任何想法?

3 个答案:

答案 0 :(得分:2)

我认为您尝试创建选项菜单(通过单击菜单按钮显示)并根据此

  

注意:图标菜单中的菜单项(来自“选项”菜单)不能   显示复选框或单选按钮。如果你选择在中制作物品   图标菜单可选,您必须手动指示已检查状态   每次状态改变时交换图标和/或文本。

您无法在OptionsMenu中添加群组菜单。所以我认为你应该使用上下文菜单或子菜单。 看一下这个article

答案 1 :(得分:2)

这是解决方法:

在strings.xml文件中,您可以嵌入unicode复选标记。有两种可供选择。对于这个项目,我更喜欢友好的检查\ u2714。然后根据需要通过onPrepareOptionsMenu()将字符串与没有它的字符串的复选标记交换。

这是xml代码中的两个字符串,一个带有一个没有复选标记:

    <string name="opp_random">unchecked</string>
    <string name="opp_random_check">\u2714 checked</string>

快乐的编码!

答案 2 :(得分:0)

怎么样

android:checkable="true"