2

我对android很陌生,我有一个这样的xml:

<RadioGroup
        android:id="@+id/cardRadioGroup"
        android:layout_width="wrap_content"
        android:layout_height="45dp" android:layout_alignParentLeft="true" android:layout_marginLeft="35dp"
        android:layout_alignTop="@+id/cardEditText">
</RadioGroup>

我很想使用我的代码来扩展这个 xml,以根据我的数据模型生成尽可能多的单选按钮。

我使用的代码是(在 for 循环中):

        LayoutInflater inflater = this.getLayoutInflater();
        View currentView = inflater.inflate(R.layout.card_payment_content_node,null);

        RadioGroup rg = (RadioGroup) currentView.findViewById(R.id.cardRadioGroup);
        RadioButton rb =  new RadioButton(this);
        //set radiobutton properties
        rb.setText(entry.getKey());
        rb.setId(++radioButtonIdCounter);

        rg.addView(rb);

        //add to view
        parent.addView(currentView);

这按预期工作。但问题是我可以在我的设备上一次选择许多单选按钮。

我不确定为什么会这样。我在哪里犯错误?

提前致谢。

4

1 回答 1

7

您的所有按钮都具有相同的 ID。这就是他们行动如此一致的原因。

您只会膨胀一次布局。您必须以编程方式添加按钮,方法是识别cardRadioGroup然后循环输入代码,为所有按钮生成唯一 ID。

要将单选按钮添加到组,请使用RadioGroup.addview()

要创建单选按钮,请使用RadioButton的构造函数之一,并根据需要设置更多属性。

于 2013-02-07T07:42:44.117 回答