Android的菜单:在同一个菜单中的两个单可检查组 [英] Android Menu: Two single-checkable groups in the same menu

查看:86
本文介绍了Android的菜单:在同一个菜单中的两个单可检查组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的XML code是:

 <组机器人:checkableBehavior =单一>
    <项目机器人:ID =@ + ID / group_1_box_1/>
    <项目机器人:ID =@ + ID / group_1_box_2/>
< /组>

<组机器人:checkableBehavior =单一>
    <项目机器人:ID =@ + ID / group_2_box_1/>
    <项目机器人:ID =@ + ID / group_2_box_2/>
< /组>
 

我遇到的问题是,当我改变group_1_box_1到真正的状态,它不仅集group_1_box_2假,还设置了group_2箱为false。

编辑:这是我的code

 公共布尔onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
    案例R.id.group_1_box_1:
        item.setChecked(真正的);
        返回true;
    案例R.id.group_1_box_2:
        item.setChecked(真正的);
        返回true;
    案例R.id.group_2_box_1:
        item.setChecked(真正的);
        返回true;
    案例R.id.group_2_box_2:
        item.setChecked(真正的);
        返回true;
    默认:
        返回super.onOptionsItemSelected(项目);
}
 

解决方案

您只需要唯一的ID添加到每个在XML文件中的项目。

 <组
    机器人:ID =@ + ID / menuGroup_1<  - 查看 - >!
    机器人:checkableBehavior =单一>
    <项目机器人:ID =@ + ID / group_1_box_1/>
    <项目机器人:ID =@ + ID / group_1_box_2/>
< /组>

<组
    机器人:ID =@ + ID / menuGroup_2<  - 在这里 - >
    机器人:checkableBehavior =单一>
    <项目机器人:ID =@ + ID / group_2_box_1/>
    <项目机器人:ID =@ + ID / group_2_box_2/>
< /组>
 

My xml code is:

<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>

The problem I am having is that when I change the state of group_1_box_1 to true, it not only sets group_1_box_2 to false, it also sets the group_2 boxes to false.

Edit: Here's my code

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);
}

解决方案

You just need to add unique IDs to each of the group items in the xml file.

<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>

这篇关于Android的菜单:在同一个菜单中的两个单可检查组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆