效果:
1.布局
默认的radio
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="14dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="男" />
<RadioButton
android:layout_marginLeft="20dp"
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女" />
</RadioGroup>
<TextView
android:id="@+id/sex"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="性别"
android:textColor="#03A9F4"
android:textSize="50sp" />
自定义radio样式
<RadioGroup
android:id="@+id/radioGroup2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/radio_shape"
android:button="@null"
android:checked="true"
android:text="" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:text="男" />
<RadioButton
android:id="@+id/radioButton4"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginLeft="30dp"
android:background="@drawable/radio_shape"
android:button="@null"
android:text="" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:text="女" />
</RadioGroup>
<TextView
android:id="@+id/sex"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="性别"
android:textColor="#03A9F4"
android:textSize="50sp" />
radio_shape
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/radio_c" android:state_checked="true" />
<item android:drawable="@mipmap/radio_n" android:state_checked="false" />
</selector>
2.代码:
package com.jsyj.android_p1.model;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioGroup;
import androidx.annotation.Nullable;
import com.cmmboy.toastlib.ToastUtils;
import com.jsyj.android_p1.cmm.BaseActivity;
import com.jsyj.android_p1.databinding.ActivityModelBinding;
import com.jsyj.android_p1.databinding.ActivityRadioBinding;
public class RadioActivity extends BaseActivity {
private ActivityRadioBinding binding;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityRadioBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
initClick();
}
private void initClick() {
binding.radioButton1.setChecked(true);//默认选中
binding.radioGroup.setOnCheckedChangeListener((group, checkedId) -> {
if (checkedId == binding.radioButton1.getId()) {
binding.sex.setText("男");
} else if (checkedId == binding.radioButton2.getId()) {
binding.sex.setText("女");
}
});
binding.radioGroup2.setOnCheckedChangeListener((group, checkedId) -> {
if (checkedId == binding.radioButton3.getId()) {
binding.sex.setText("男");
} else if (checkedId == binding.radioButton4.getId()) {
binding.sex.setText("女");
}
});
}
}