安卓单选按钮组多选问题

3
我正在以编程方式创建一系列单选按钮,并将它们放在一个单选组中:
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);
            }

它按照我的意图创建了单选按钮,但当我点击多个按钮时,它们都像复选框一样保持选中状态,而我需要像通常的单选按钮一样只选中一个。
有任何想法为什么会发生这种情况?
单选组在XML中,如下所示:
    <RadioGroup
    android:layout_margin="10dp"
    android:id="@+id/reg_rgrp_soldiers"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</RadioGroup>
1个回答

8

只有当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);
        } 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接