我的布局中有2个RadioGroup。
我希望用户检查两个组中的RadioButtons。
但我希望用户先从第一组中选择RadioButton,然后再从第二组中选择。因此,如果用户直接尝试从第二组中选择RadioButton,则会生成错误(可能是Toast或其他任何内容),首先从第一组中选择RadioButton。
所以我想实现这个东西,以便用户不能再从第二组中选择单选按钮。
e.g
类型:
o易于困难
动作:
o添加o减去
这些是来自不同广播组的单选按钮。
如果用户直接尝试从“操作”组中选择单选按钮,则它将不会被选中并显示和首先选择类型的错误消息。
希望我能清楚地解释我的问题。
由于
答案 0 :(得分:0)
如果您将其放入onCreate
,请调整您的ID:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RadioGroup groupOne = (RadioGroup) findViewById(R.id.radio_group_one);
groupOne.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int index) {
RadioGroup groupTwo = (RadioGroup) findViewById(R.id.radio_group_two);
for(int i = 0; i < groupTwo.getChildCount(); i++) {
groupTwo.getChildAt(i).setEnabled(true);
}
}
});
}
然后您的XML布局文件应如下所示:
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radio_group_one">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Group 1 button 1"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Group 1 button 2"/>
</RadioGroup>
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radio_group_two">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Group 2 button 1"
android:enabled="false"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Group 2 button 2"
android:enabled="false"/>
</RadioGroup>
因此,第二个RadioGroup
中的按钮首先被禁用,并且只有在用户在第一个中进行选择后才会启用。