自定义RadioGroup实现

在drawable文件夹下新建my_radiob_button_check.xml,里面的内容
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false" android:drawable="@drawable/ic_not_check" />
    <item android:state_checked="true" android:drawable="@drawable/ic_check_mark" />
</selector>
注意事项

1.里面的内容必须是<item android:state_checked="false" android:drawable="@drawable/ic_not_check" />
使用比如是图片默认引用方式<item android:drawable="@drawable/ic_not_check" />是可以点击按钮,但是背景图片不会改变,默认不选择。

xml文件中引用
 <RadioGroup
            android:id="@+id/rg_sex"
            android:layout_gravity="center"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:textSize="@dimen/text_dimens_14"
                android:textColor="@color/tv_bold_color"
                android:layout_marginLeft="@dimen/space_dimens_25"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="女" />

            <RadioButton
                android:id="@+id/rb_women"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:layout_marginLeft="@dimen/bb_default_elevation"
                android:layout_marginStart="@dimen/bb_default_elevation"
                android:drawableLeft="@drawable/my_radiobutton_not_check"
                android:drawableStart="@drawable/my_radiobutton_not_check"
                android:button="@null" />

            <TextView
                android:textSize="@dimen/text_dimens_14"
                android:textColor="@color/tv_bold_color"
                android:layout_marginLeft="@dimen/space_dimens_25"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="男" />

            <RadioButton
                android:id="@+id/rb_men"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="@dimen/bb_default_elevation"
                android:layout_marginStart="@dimen/bb_default_elevation"
                android:drawableLeft="@drawable/my_radiobutton_not_check"
                android:drawableStart="@drawable/my_radiobutton_not_check"
                android:button="@null" />
        </RadioGroup>
activity使用
public class UserInfoActivity extends BaseActivity implements RadioGroup.OnCheckedChangeListener {

    @BindView(R.id.rg_sex)
    RadioGroup rgSex;
 
    @Override
    protected int getLayoutView() {
        return R.layout.activity_user_info2;
    }

    @Override
    protected void setUpView() {
        super.setUpView();
        initEvent();

    }

    private void initEvent() {
        rgSex.setOnCheckedChangeListener(this);
    }

    //选择性别
    @Override
    public void onCheckedChanged(RadioGroup radioGroup, @IdRes int checkedId) {
        switch (checkedId) {
            case R.id.rb_women:
                ToastUtils.showShort("女");
                break;
            case R.id.rb_men:
                ToastUtils.showShort("男");
                break;
            default:
                break;
        }
    }


}
<太久没有使用这个控件了,写个文章备忘一下>
    原文作者:十方天仪君
    原文地址: https://www.jianshu.com/p/6ea6202f91cd
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞