RadioGroup是由多个Radio组成的一个群组。
如下示例:
1. 新建控件
<RadioGroup
android:id="@+id/hobby"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton
android:id="@+id/swim"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="swim"/>
<RadioButton
android:id="@+id/fish"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="fish"/>
<RadioButton
android:id="@+id/ball"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="ball"
android:checked="true"/> <!--默认值-->
</RadioGroup>
- 获取RadioGroup控件
RadioGroup mHobbyGroup = (RadioGroup) findViewById(R.id.hobby); - 获取默认值
RadioButton defaultHobby = (RadioButton) mHobbyGroup.findViewById(mHobbyGroup.getCheckedRadioButtonId());
String defaultValue = defaultHobby.getText().toString(); - 监控改变的选中值
需要继承RadioGroup.OnCheckedChangeListener接口,
重写方法
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
int radioId = mHobbyGroup.getCheckedRadioButtonId();
if(radioId<0) {
radioContent.setText("no radio is checked");
} else {
hobby = (RadioButton) mHobbyGroup.findViewById(checkedId);
radioContent.setText("My hobby is " + hobby.getText());
}
}
详细代码如下:
MainActivity.java
public class MainActivity extends Activity implements RadioGroup.OnCheckedChangeListener{
private RadioGroup mHobbyGroup = null;
private TextView radioContent = null;
private RadioButton hobby = null;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioContent = (TextView) findViewById(R.id.radio_content);
mHobbyGroup = (RadioGroup) findViewById(R.id.hobby);
RadioButton defaultHobby = (RadioButton) mHobbyGroup.findViewById(mHobbyGroup.getCheckedRadioButtonId());
radioContent.setText("My hobby is " + defaultHobby.getText());
// String valueString = defaultHobby.getText().toString();
mHobbyGroup.setOnCheckedChangeListener(this);
// mHobbyGroup.clearCheck();
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
int radioId = mHobbyGroup.getCheckedRadioButtonId();
if(radioId<0) {
radioContent.setText("no radio is checked");
} else {
hobby = (RadioButton) mHobbyGroup.findViewById(checkedId);
radioContent.setText("My hobby is " + hobby.getText());
}
}
}