Android菜单:同一菜单中的两个单一可检查组

时间:2011-07-14 19:35:47

标签: android

我的xml代码是:

<group android:checkableBehavior="single">
    <item android:id="@+id/group_1_box_1"/>
    <item android:id="@+id/group_1_box_2"/>
</group>

<group android:checkableBehavior="single">
    <item android:id="@+id/group_2_box_1"/>
    <item android:id="@+id/group_2_box_2"/>
</group>

我遇到的问题是,当我将group_1_box_1的状态更改为true时,它不仅将group_1_box_2设置为false,还将group_2框设置为false。

编辑:这是我的代码

public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
    case R.id.group_1_box_1:
        item.setChecked(true);
        return true;
    case R.id.group_1_box_2:
        item.setChecked(true);
        return true;
    case R.id.group_2_box_1:
        item.setChecked(true);
        return true;
    case R.id.group_2_box_2:
        item.setChecked(true);
        return true;
    default:
        return super.onOptionsItemSelected(item);
}

2 个答案:

答案 0 :(得分:4)

您只需要为xml文件中的每个group项添加唯一ID。

<group
    android:id="@+id/menuGroup_1"           <!-- Here -->
    android:checkableBehavior="single">
    <item android:id="@+id/group_1_box_1"/>
    <item android:id="@+id/group_1_box_2"/>
</group>

<group
    android:id="@+id/menuGroup_2"           <!-- And here -->
    android:checkableBehavior="single">
    <item android:id="@+id/group_2_box_1"/>
    <item android:id="@+id/group_2_box_2"/>
</group>

答案 1 :(得分:0)

使用:

compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'