本文介绍我了解到的RadioGroup和RadioButton的基本特点和使用。
1.简介:
RadioGroup是容器控件,继承自LinearLayout,所以LinearLayout所有的属性RadioGroup也有。
RadioGroup是专门容纳RadioButton的容器控件。它可以容纳多个RadioButton,并且只让一个Radiobutton可以被选中。
RadioButton是一个特殊的按钮控件,继承自Button,它必须被放置到RadioButton容器内。
多个RadioButton只有一个可以被选中。
2.效果演示:
这里将演示性别那一行的代码效果。
3.代码:
3.1:首先要设置RadioButton未选择和已选择时候的选择器,放到drawable目录下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--未选中的图片-->
<item android:drawable="@drawable/rounded_rectangle2" android:state_checked="false" />
<!--选中的图片-->
<item android:drawable="@drawable/rounded_rectangle" android:state_checked="true" />
</selector>
3.2:其次要设置演示的XML文件:
<RadioGroup
android:id="@+id/rg_gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal">
<RadioButton
android:id="@+id/rb_male"
android:layout_width="30dp"
android:layout_height="20dp"
android:layout_marginLeft="230dp"
android:text="公"
android:button="@null"
android:gravity="center"
android:background="@drawable/radiobutton"
/>
<RadioButton
android:id="@+id/rb_female"
android:layout_width="30dp"
android:layout_height="20dp"
android:layout_marginLeft="30dp"
android:text="母"
android:button="@null"
android:gravity="center"
android:background="@drawable/radiobutton" />
</RadioGroup>
3.3:接着在Activity设置监听器,注意,要对RadioGroup绑定监听器,而不是RadioButton:
RadioGroup rgPetGender = findViewById(R.id.rg_gender);
rgPetGender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int id) {
switch (id){
case R.id.rb_male:
Toast.makeText(SendPetActivity.this, "您点击了男", Toast.LENGTH_SHORT).show();
break;
case R.id.rb_female:
Toast.makeText(SendPetActivity.this, "您点击了女", Toast.LENGTH_SHORT).show();
break;
}
}
});