一、单项选择(RadioGroup、RadioButton)
在布局时,我们会发现android不仅提供了RadioGroup,还提供了单独的RadioButton。RadioGroup中显示了3个RadioButton,而RadioButton的个数是可以自己修改的。
要实现单选功能,必须将RadioButton放在RadioGroup中,否则多个RadioButton不能自动实现单选(即选中A,B的选择框自动变灰)。
布局实例:
1 <RadioGroup
2 android:id="@+id/radioGroup1"
3 android:layout_width="wrap_content"
4 android:layout_height="wrap_content"
5 android:orientation="horizontal"
6 android:layout_alignLeft="@+id/seekBar1"
7 android:layout_below="@+id/seekBar1">
8
9 <RadioButton
10 android:id="@+id/radio0"
11 android:layout_width="60dip"
12 android:layout_height="40dip"
13 android:text="1"
14 android:textColor="#669966" />
15
16 <RadioButton
17 android:id="@+id/radio1"
18 android:layout_width="60dip"
19 android:layout_height="40dip"
20 android:checked="true"
21 android:text="4"
22 android:textColor="#669966" />
23 </RadioGroup>
一般我们会对整个RadioGroup设置一个监听器setOnCheckedChangeListener,只要这个Group中的选择状态发生改变,就会触发。
mRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
Toast.makeText(ConfigActivity.this, "更改了选项", 1000).show();
}
});
ps:上述代码中需要注意的一点是:new的时候要加上RadioGroup.,否则会报错。因为RadioButton也能设置OnCheckedChangeListener,这是为了区分到底是RadioGroup,还是RadioButton的listener。
二、多项选择CheckBox
单项选择一般是对整个RadioGroup设置监听,而不是对每一个RadioButton设置;多项选择一般会对每个CheckBox设置监听器。