0

我正在使用以下代码在运行时创建一个带有单选按钮(来自枚举)的单选组。

RadioGroup radioGroup = new RadioGroup(this);

List<LocationTypeEnum> warningTypes = preferences.getWarningTypes();
for (LocationTypeEnum enumElement : warningTypes) {
    RadioButton radio = new RadioButton(this);
    radio.setText(enumElement.toString());

    //Check one specific radio by default
        radio.setChecked(enumElement.intValue == userDefinedLocation.getType().intValue);

    radioGroup.addView(radio, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
}

当谈到屏幕并且我尝试更改收音机时,这两个选项都保持选中状态:

在此处输入图像描述

怎么了?

4

2 回答 2

3

找到了答案。在将 RadioButton 设置为选中之前,您必须将 RadioButton 添加到 RadioGroup ,否则单选组会丢失。接下来,正确的代码。

    RadioGroup radioGroup = new RadioGroup(this);

    List<LocationTypeEnum> warningTypes = preferences.getWarningTypes();
    for (LocationTypeEnum enumElement : warningTypes) {
        RadioButton radio = new RadioButton(this);
        radio.setText(enumElement.toString());

        //First, add the radio to the group
        radioGroup.addView(radio, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));

        //Only after that you can check it.
        radio.setChecked(enumElement.intValue == userDefinedLocation.getType().intValue);

    } 

听起来像一个错误,对我来说。感谢http://code.google.com/p/android/issues/detail?id=1772

于 2013-01-15T22:05:46.573 回答
0

不知道如何评论要求您发布您的布局 .xml 文件。确保您还将它们分组到您的 xml 文件中,如下所示:

<RadioGroup
        android:id="@+id/radioSex"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/radioMale"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/radio_male" 
            android:checked="true" />

        <RadioButton
            android:id="@+id/radioFemale"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/radio_female" />

    </RadioGroup>
于 2013-01-15T20:11:54.897 回答