Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓无线组多重选择问题_Java_Android_Radio Button_Radiobuttonlist_Radio Group - Fatal编程技术网

Java 安卓无线组多重选择问题

Java 安卓无线组多重选择问题,java,android,radio-button,radiobuttonlist,radio-group,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.setTex

我正在通过编程在一个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);
            }
它按照我的意愿创建单选按钮,但当我单击几个按钮时,它们都像复选框一样保持单击状态,我只需要像单选按钮通常那样一次单击一个

知道为什么会这样吗

radiogroup位于XML中,如下所示:

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

单选按钮只有在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);
        }