我希望在一个radiogroup中有单选按钮分为2列和几行。
到目前为止,我已经能够通过将LinearLayouts放在radiogroup中来划分它们。问题是当我点击它们时它们不是独占的(我可以同时检查所有这些)。有没有办法让它们独占(除了程序化的方式)?
答案 0 :(得分:21)
我来到这个页面的问题略有不同。我想让所有单选按钮保持水平。愿这对某人有所帮助。设置方向将负责将所有单选按钮放在一行中。
<RadioGroup
android:id="@+id/commuteby"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@+id/line0" >
注意:强> 如果组件穿过屏幕,那么它也会将组件放在同一行中。因此,您的某些列可能隐藏在小屏幕手机中。但是您可以为小屏幕创建另一个布局文件。
答案 1 :(得分:0)
执行以下步骤:
。
private void initView(){
radioGroup.setOnCheckedChangeListener(radioGroup1CheckedChangeListener);
radioGroup2.setOnCheckedChangeListener(radioGroup2CheckedChangeListener);
}
RadioGroup.OnCheckedChangeListener radioGroup1CheckedChangeListener = new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i) {
case R.id.rb1:
radioGroup2.setOnCheckedChangeListener(null);
radioGroup2.clearCheck();
radioGroup2.setOnCheckedChangeListener(rgPaymentMethods2CheckedChangeListener);
break;
// more radiobutton id with same approach
}
}
};
RadioGroup.OnCheckedChangeListener radioGroup2CheckedChangeListener = new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i) {
case R.id.rb2:
radioGroup1.setOnCheckedChangeListener(null);
radioGroup1.clearCheck();
radioGroup1.setOnCheckedChangeListener(rgPaymentMethodsCheckedChangeListener);
break;
// more radiobutton id with same approach
}
}
};
答案 2 :(得分:-5)
如果通过“编程方式”表示您只想使用XML来控制这些单选按钮,那么就没有。没有解决方案。
以“编程方式”执行此操作应该非常简单。