Android 单选组多选问题
Android Radio Group multiple selection issue
我正在以编程方式在单选组中创建一系列单选按钮:
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>
RadioButton 仅当它们相同 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);
}
我正在以编程方式在单选组中创建一系列单选按钮:
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>
RadioButton 仅当它们相同 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);
}