一、单项选择(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设置监听器。