- 实现RadioButton由两部分组成,也就是RadioButton和RadioGroup配合使用.
- RadioGroup是单选组合框,可以容纳多个RadioButton的容器.
- 在没有RadioGroup的情况下,RadioButton可以全部都选中
- 当多个RadioButton被RadioGroup包含的情况下,RadioButton只可以选择一个。
Xml代码
<RadioGroup
android:id="@+id/rg_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"> //竖直方向摆放
<RadioButton
android:id="@+id/rb_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
android:checked="true" //默认选中,**如果设置checked,一定要加id**
android:textSize="20sp"
android:textColor="#0066FF"
/>
<RadioButton
android:id="@+id/rb_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
android:layout_marginTop="10dp"
android:textSize="20sp"
android:textColor="#0066FF"
/>
</RadioGroup>
效果:
自定义RadioButton
<RadioGroup
android:id="@+id/rg_2"
android:layout_below="@+id/rg_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" //水平排列
android:layout_marginTop="50dp">
<RadioButton
android:id="@+id/rb_3"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="男"
android:button="@null" //去除前面的圆圈
android:checked="true"
android:textSize="20sp"
android:textColor="#000000"
android:background="@drawable/rb_button" //自定义背景
android:gravity="center"
/>
<RadioButton
android:id="@+id/rb_4"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="女"
android:button="@null"
android:layout_marginLeft="15dp"
android:textSize="20sp"
android:textColor="#000000"
android:background="@drawable/rb_button"
android:gravity="center"
/>
</RadioGroup>
在drawable中自定义背景:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"> //选中的效果
<shape>
<solid android:color="#1AE6E6"/>
<corners
android:radius="5dp"/>
</shape>
</item>
<item android:state_checked="false"> //未选中的效果
<shape>
<stroke
android:color="#1AE6E6"
android:width="2dp"
/>
</shape>
</item>
效果展示:
设置监听事件
private RadioGroup mRg1;
mRg1=(RadioGroup)findViewById(R.id.rg_1);
mRg1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){ //被选择的监听器
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) { //参数:被选择的按钮所在的组,id
RadioButton radioButton=(RadioButton)group.findViewById(checkedId); //根据被选择按钮的ID找到被选择按钮
Toast.makeText(RadioButtonActivity.this,radioButton.getText(),
Toast.LENGTH_SHORT).show(); //设置提示信息
}
});