【发布时间】:2012-01-30 11:12:47
【问题描述】:
我想在一个单选组中有单选按钮,分为 2 列和多行。
到目前为止,我已经能够通过将 LinearLayouts 放在 radiogroup 中来划分它们。问题是当我点击它们时它们不是排他的(我可以同时检查所有这些)。有没有办法让它们独占(除了程序化方式)?
【问题讨论】:
标签: android
我想在一个单选组中有单选按钮,分为 2 列和多行。
到目前为止,我已经能够通过将 LinearLayouts 放在 radiogroup 中来划分它们。问题是当我点击它们时它们不是排他的(我可以同时检查所有这些)。有没有办法让它们独占(除了程序化方式)?
【问题讨论】:
标签: android
我带着一个稍微不同的问题来到这个页面。我想保持我所有的单选按钮水平。愿这对某人有所帮助。设置方向将负责将所有单选按钮放置在一行中。
<RadioGroup
android:id="@+id/commuteby"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@+id/line0" >
注意: 如果组件穿过屏幕,那么它也会将组件放置在同一行中。所以你的一些专栏可能会隐藏在小屏手机中。但是您可以为小屏幕创建另一个布局文件。
【讨论】:
按照以下步骤操作:
.
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
}
}
};
【讨论】:
如果通过“编程方式”表示您只想使用 XML 来控制这些单选按钮,那么不。没有解决办法。
“以编程方式”执行它应该很容易。
【讨论】: