我使用两个线性布局在一行中显示两行单选按钮3,在另一行中显示3行。我搜索并发现我们应该使用radio group
。但在使用无线电组后,我也无法在选择单选按钮时取消选中单选按钮
<RadioGroup
android:id="@+id/payment_mode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
style="@style/LinkButton"
android:id="@+id/cash"
android:text="CASH" />
<RadioButton
style="@style/LinkButton"
android:id="@+id/card"
android:text="CARD" />
<RadioButton
style="@style/LinkButton"
android:id="@+id/pay_tm"
android:text="PAYTM" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<RadioButton
style="@style/LinkButton"
android:id="@+id/bank"
android:text="BANK" />
<RadioButton
style="@style/LinkButton"
android:id="@+id/cc_av"
android:text="CC-AV" />
<RadioButton
style="@style/LinkButton"
android:id="@+id/credit"
android:text="CREDIT" />
</LinearLayout>
</RadioGroup>
答案 0 :(得分:0)
您无法在
RadioGroup
内使用任何布局。你只能使用RadioButton
,否则RadioButton
将无效。RadioButton
应该是RadioGroup的直接孩子。
您的问题将通过将radioGroup的方向更改为水平来解决。 更多信息here
答案 1 :(得分:0)
来自开发者网站
要创建每个单选按钮选项,请在您的。中创建一个RadioButton 布局。但是,因为单选按钮是互斥的,所以 必须将它们组合在一个RadioGroup中。通过分组他们 在一起,系统确保只有一个单选按钮 一次选择。
因此单选按钮的直接父级必须是RadioGroup,在布局文件中,直接父级是LinearLayout。删除LinearLayout并将radiobuttons直接放在RadioGroup下。
答案 2 :(得分:0)
尝试更改此布局并执行点击操作,请参阅此link:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioGroup
android:id="@+id/payment_mode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:orientation="vertical">
<RadioButton
android:id="@+id/cash"
style="@style/LinkButton"
android:text="CASH" />
<RadioButton
android:id="@+id/card"
style="@style/LinkButton"
android:text="CARD" />
<RadioButton
android:id="@+id/pay_tm"
style="@style/LinkButton"
android:text="PAYTM" />
<RadioButton
android:id="@+id/bank"
style="@style/LinkButton"
android:text="BANK" />
<RadioButton
android:id="@+id/cc_av"
style="@style/LinkButton"
android:text="CC-AV" />
<RadioButton
android:id="@+id/credit"
style="@style/LinkButton"
android:text="CREDIT" />
</RadioGroup>
</LinearLayout>
答案 3 :(得分:0)
对于我的回答,您无需使用广播组。您只需在每个单选按钮上设置单击侦听器即可。例如。
RadioButton tempRadioButton; //global variable.
radioButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (tempRadioButton != null){
tempRadioButton.setChecked(false);
}
tempRadioButton = (RadioButton) view;
}
});
您还可以使用此方法在列表视图或回收站视图的每个项目上设置单选按钮。