Android:如何设计实现“RadioGroup”效果?

时间:2010-08-07 02:04:19

标签: android radio-button tablelayout

我正在尝试设计一个如下所示的Android布局:

Entity1
option1 for Entity1
option2
...
optionN
Entity2
option1 for Entity2
...
optionN
Entity3

...

要求每个实体只允许一个选项。

我决定使用单选按钮,打算使用RadioGroup来强制执行。我按如下设计实现了上述目标:

<table layout>
    <TextView, content = "Entity1"/>
    <TextView, content = "option1 for Entity1"/> <RadioButton/>
    <TextView, content = "option2"> <RadioButton/>
   ...
</table layout>

伪代码将是:

 RadioGroup raGroup = createEmptyRaGroup()
    ...
    row = new TableRow(); 
    row.add(TextView-entity1);  
    row.add(TextView-op1ForEntity1); 
    RadioButtton raBtn = createRadioButton(); 
    raGroup.addView(raBtn); 
    row.addView(raBtn);  
    ...

我遇到的问题是我无法将单选按钮分组到一个RadioGroup下,因此只选择了一个选项。在运行时,Android抱怨单选按钮必须是该行的直接子节点。如果我首先将单选按钮添加到行,然后首先将单选按钮添加到单选按钮组,则会产生类似的运行时错误。

有人能告诉我如何使用上述设计或其他方式实现RadioGroup效果吗?

谢谢你们。

1 个答案:

答案 0 :(得分:2)

为什么不在布局中使用RadioGroup,如下所示:

<RadioGroup
    android:id="@+id/RadioGroup01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

<RadioButton 
    android:text="Choice 1"
    android:id="@+id/RadioButton01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

<RadioButton
    android:text="Choice 2"
    android:id="@+id/RadioButton02" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/>
</RadioGroup>