即使@dannys的回答没问题,我也希望从XML布局定义文件中获取默认值,而不是在代码中设置它。
这就是为什么我使用这种方法来:
- 存储无线电组的默认值
- 清除所有支票
- 初始化
OnCheckedChangeListener
- 再次检查触发监听器的默认值(之前存储的)
first_radio_button
在默认单选按钮的代码中,这可能如下所示:
// call this in any init method
_myRadioGroup = _myViewContainingTheRadioGroup.findViewById(R.id.my_radio_group);
int defaultValue = _myRadioGroup.getCheckedRadioButtonId();
_myRadioGroup.clearCheck();
_myRadioGroup.setOnCheckedChangeListener(_myRadioGroupCheckedChangeListener);
_myRadioGroup.check(defaultValue);
将OnCheckedChangeListener
某个地方放在你的课堂上:
private RadioGroup.OnCheckedChangeListener _myRadioGroupCheckedChangeListener = new RadioGroup.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId)
{
switch(group.findViewById(checkedId).getId())
{
case R.id.first_radio_button:
// do stuff
break;
case R.id.second_radio_button:
// do stuff
break;
// ...
}
}
};
这是我的广播组 xml
<RadioGroup
android:id="@+id/my_radio_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/first_radio_button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:checked="true"
android:text="@string/first_radio_button_text"/>
<RadioButton
android:id="@+id/second_radio_button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/second_radio_button_text"/>
// ...
</RadioGroup>