所有单选按钮都在一个无线电组,android下被选中

时间:2013-02-07 07:37:03

标签: java android

我是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);

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

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

提前致谢。

1 个答案:

答案 0 :(得分:7)

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

您只需将布局充气一次。您必须通过识别cardRadioGroup然后循环代码,以编程方式添加按钮,为所有按钮生成唯一ID。

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

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