Android Radio Group多重选择问题

时间:2016-08-13 21:00:25

标签: java android radio-button radiobuttonlist radio-group

我是以编程方式在一个radiogroup中创建一系列单选按钮:

for (Soldier soldier:clickedSquad.getMembers()) {
                Integer I=0;
                soldier.setId(I);
                RadioButton radiobutton=new RadioButton(getContext());
                radiobutton.setText(soldier.toString());
                radiobutton.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                radiobutton.setId(soldier.getId());
                I++;
                soldierRgrp.addView(radiobutton);
            }

它按照我的意图创建了radiobuttons,但是当我点击几个时,它们就像一个复选框一样点击,我只需要像往返一样点击一次。

知道为什么会这样吗?

无线电组在XML中,如下所示:

    <RadioGroup
    android:layout_margin="10dp"
    android:id="@+id/reg_rgrp_soldiers"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</RadioGroup>

1 个答案:

答案 0 :(得分:6)

RadioButtons只有在id相同时才会表现出来。在你的情况下,他们做!您每次都在初始化变量I=0。因此,每个士兵都被赋予相同的id。士兵们不是特别喜欢!将代码更改为:

      int i=0;
      for (Soldier soldier:clickedSquad.getMembers()) {
            soldier.setId(i++);
            RadioButton radiobutton=new RadioButton(getContext());
            radiobutton.setText(soldier.toString());
            radiobutton.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            radiobutton.setId(soldier.getId());
            soldierRgrp.addView(radiobutton);
        }