如何设置单选组内单选按钮的值 android

How to set value of a radio button inside a radio group android

我正在尝试使用内部有 2 个单选按钮的单选组。我想为每个单选按钮设置一个值,例如值是男性和女性。之后,当我已经点击我的单选按钮时,它将显示所选的值。你怎么能做到这一点?感谢您的帮助。

我试过类似的东西只是为了测试我将如何设置一个值

public void onRadioButtonClicked(View radioButton) {
    int count = radioGroup.getChildCount();
    for (int i = 0; i < count; i++) {
        View o = radioGroup.getChildAt(i);
        if (o instanceof RadioButton) {

            RadioButton radioBtn =  (RadioButton)o;
            // get the state
            boolean isChecked = radioBtn.isChecked();
            // to set the check
            radioBtn.setChecked(true);

        }
    }
}

但我认为这不是我要找的。

我已经尝试 radioGroup.setId() 假设单选按钮已经有值但它只显示无意义的数字。

确保您的单选按钮包含在如下所示的单选组中:

        <RadioGroup
            android:id="@+id/myRadioGroup"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/radioGroupButtonMale"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content" />

            <RadioButton
                android:id="@+id/radioGroupButtonFemale"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"/>
        </RadioGroup>

并在代码中设置值,

RadioGroup mySelection = (RadioGroup)findViewById(R.id.myRadioGroup);
int radioButtonId = mySelection.getCheckedRadioButtonId();
String selectedValue;
    switch (radioButtonId)
    {
        case R.id.radioGroupButtonMale:
            selectedValue = "Value for Male";
            break;
        case R.id.radioGroupButtonFemale:
            selectedValue = "Value for Female";
            break;
    }

您应该在代码中使用 RadioGroupOnCheckedChangeListener 来检测何时选择了 RadioButton。在你的布局中 XML:

<RadioGroup
    android:id="@+id/radioGroup"
    ... >

    <RadioButton
        android:id="@+id/radioButton1"
        ... />

    <RadioButton
        android:id="@+id/radioButton2"
        ... />
</RadioGroup>

在您的 Activity/Fragment 中,设置如下:

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangedListener() {

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        <type> value = <default value>;
        switch (checkedId) {
        case R.id.radioButton1:
            value = ...;
            break;
        case R.id.radioButton2:
            value = ...;
            break;
        }
        // do something with value
    }
});