Android控件系列之RadioButton与RadioGroup使用方法


在Android开发中,`RadioButton` 通常与 `RadioGroup` 一起使用,以实现单选按钮组的功能。这里将简要介绍如何在Android项目中使用它们。

### 1. 布局文件中使用

首先,在你的布局XML文件中添加 `RadioGroup`,然后在 `RadioGroup` 内部添加多个 `RadioButton`。`RadioGroup` 会确保一次只能有一个 `RadioButton` 被选中。


<RadioGroup
    android:id="@+id/radioGroup"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <RadioButton
        android:id="@+id/radioButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="选项 1" />

    <RadioButton
        android:id="@+id/radioButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="选项 2" />

    <RadioButton
        android:id="@+id/radioButton3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="选项 3" />

</RadioGroup>

### 2. 在Activity中设置监听器

接下来,在你的Activity或Fragment中,为 `RadioGroup` 设置一个 `OnCheckedChangeListener` 来监听选择变化。


RadioGroup radioGroup = findViewById(R.id.radioGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        // 根据checkedId获取被选中的RadioButton
        RadioButton checkedRadioButton = findViewById(checkedId);
        // 使用checkedRadioButton.getText()等获取选中的项
        String selectedItem = checkedRadioButton.getText().toString();
        // 处理选中项,例如显示在Toast中
        Toast.makeText(getApplicationContext(), "选中的是: " + selectedItem, Toast.LENGTH_SHORT).show();
    }
});

### 注意事项

- `RadioGroup` 的 `orientation` 属性可以控制子 `RadioButton` 的排列方向(水平或垂直)。

- 默认情况下,`RadioGroup` 中的第一个 `RadioButton` 会被选中,除非你通过代码手动设置其他按钮为选中状态。

- 当你点击一个 `RadioButton` 时,`RadioGroup` 会自动取消其他所有 `RadioButton` 的选中状态,这是通过 `RadioGroup` 的机制自动完成的。

这就是在Android中使用 `RadioButton` 和 `RadioGroup` 的基本方法。