0
<RadioGroup>

                <TableRow>

                    <RadioButton
                        android:id="@+id/a"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="lolo"
                        />

                    <RadioButton
                        android:id="@+id/b"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="sh"
                         />
                </TableRow>

                <TableRow>

                    <RadioButton
                        android:id="@+id/c"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="s"
                        />

                    <RadioButton
                        android:id="@+id/d"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="cannot be determined"
                         />
                </TableRow>
            </RadioGroup>

我想从四个单选按钮中选择一个,它就像 4 个单独的单选按钮一样???,所有 r 都被选中了,我是 android 开发的新手,所以请指导我thanx

4

4 回答 4

1

尝试这个:

<RadioGroup
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

                <TableRow>

                    <RadioButton
                        android:id="@+id/a"
                        android:text="lolo"
                        android:button="@drawable/btn_touch"/>

                    <RadioButton
                        android:id="@+id/b"
                        android:text="sh"
                         android:button="@drawable/btn_touch"/>
                </TableRow>

                <TableRow>

                    <RadioButton
                        android:id="@+id/c"
                        android:text="s"
                        android:button="@drawable/btn_touch"/>

                    <RadioButton
                        android:id="@+id/d"
                        android:text="cannot be determined"
                        android:button="@drawable/btn_touch"/>
                </TableRow>
            </RadioGroup>

btn_touch可绘制文件夹中的位置是:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/selected1"
          android:state_checked="true"/>
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/unselected1"/>
</selector>
于 2012-07-25T10:09:09.260 回答
1

RadioButton视图必须是 , 的直接子级RadioGroup才能正常group-effect工作。

因此,如果您在 下添加“TableRow” RadioGroup,则应在其上看到的组性质RadioButton将不起作用。

对于RadioButton's 分组工作,尝试这样的事情。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center" >

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/a"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="lolo" />

        <RadioButton
            android:id="@+id/b"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="sh" />

        <RadioButton
            android:id="@+id/c"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="s" />

        <RadioButton
            android:id="@+id/d"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="cannot be determined" />
    </RadioGroup>

</RelativeLayout>

如果您非常关心行列结构,请使用您自己的布局 XML 文件本身并setOnCheckedChangeListener(listener)在单选按钮上实现。当单击任何单选按钮时,将调用相应的侦听器块,然后取消选中其他单选按钮。

于 2012-07-25T10:51:17.150 回答
1

我认为您已使用单选组并在该组内定义单选按钮这是正确的,但请参阅此链接单选按钮组这可能有用

于 2012-07-25T10:03:33.640 回答
0

如果您想将按钮保留在拆分行上,也许这可以帮助您: 1. 从您的 xml 中删除该组,因为您不需要它:

<TableRow>
                    <RadioButton
                        android:id="@+id/a"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="lolo" />

                    <RadioButton
                        android:id="@+id/b"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="sh" />
                </TableRow>

                <TableRow>
                    <RadioButton
                        android:id="@+id/c"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="s" />

                    <RadioButton
                        android:id="@+id/d"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="cannot be determined" />
                </TableRow>

2. 在您的活动中使用它以使其工作:

private RadioButton a;
    private RadioButton b;
    private RadioButton c;
    private RadioButton d;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        ButtonChange clRadio = new ButtonChange();
        a = (RadioButton) findViewById(R.id.a);
        b = (RadioButton) findViewById(R.id.b);
        c = (RadioButton) findViewById(R.id.c);
        d = (RadioButton) findViewById(R.id.d);
        a.setOnCheckedChangeListener(clRadio);
        b.setOnCheckedChangeListener(clRadio);
        c.setOnCheckedChangeListener(clRadio);
        d.setOnCheckedChangeListener(clRadio);
        ...
    }
    public class ButtonChange implements OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton radio, boolean isChecked) {
            if(isChecked)
                switch(radio.getId()) {
                case R.id.a:
                case R.id.b:
                case R.id.c:
                case R.id.d:
                    a.setChecked(false);
                    b.setChecked(false);
                    c.setChecked(false);
                    d.setChecked(false);
                    radio.setChecked(true);
                    break;
                default :
                    break;
                }
            }
        }
    }

这应该可以解决问题。

于 2012-07-25T11:49:03.550 回答