android 单选按钮RadioButton

苗征
2023-12-01

单选按钮:指的是一组按钮中选择其中一项,并且不能多选。

单选组:RadioGroup;实际上是个布局,同一组RaddioButton都要放在RadioGroup节点下。

RadioGroup在Java代码中的3个常用方法:

check:选中指定资源编号的单选按钮。

getCheckedRadioButtonId:获取已选中单选按钮的资源编号

setOnCheckChangeListener:设置单选按钮勾选变化的监听器

案例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="请选择的性别:"/>
    <RadioGroup
        android:id="@+id/rb_gender"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <RadioButton
            android:id="@+id/rb_male"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="男"/>
        <RadioButton
            android:id="@+id/rb_female"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="女"/>
    </RadioGroup>
    <TextView
        android:id="@+id/tv_result"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"/>
</LinearLayout>
   private TextView tv_result;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_radio7);
        tv_result = findViewById(R.id.tv_result);
        RadioGroup rb_gender = findViewById(R.id.rb_gender);
        rb_gender.setOnCheckedChangeListener(this);
    }

    // 在用户点击组内的单选按钮时触发
    public void onCheckedChanged(RadioGroup group, int checkedId) {
//         使用的checkedid 判断单选按钮的id
        switch (checkedId) {
            case R.id.rb_male:
                tv_result.setText("哇哦,你是个帅气的男孩");
                break;
            case R.id.rb_female:
                tv_result.setText("哇哦,你是个漂亮的女孩");
                break;
        }
    }
 类似资料: