如何在 Android 中设置启用数组列表中的所有无线电组?
How to set enabled all radio groups from an Array List in Android?
我以编程方式创建了几个单选组,每个单选组有 4 个单选按钮。我也在我创建的完成按钮上设置了 OnClickListener。我希望当有人单击该按钮时,启用名为 answerGroupList
的 ArrayList
中的所有无线电组。我怎样才能做到这一点?
这是我的代码:
List<RadioGroup> answerGroupList = new ArrayList<>();
List<RadioButton> answerList = new ArrayList<>();
int i = 0;
for (Question qn : questions) {
RadioGroup answerGroup = new RadioGroup(this);
answerGroupList.add(new RadioGroup(this));
answerGroup.setId(i);
int j = 0;
for (Answer an : answers) {
if (qn.getID() == an.getQuestion_id_answer()) {
RadioButton answer = new RadioButton(this);
answerList.add(new RadioButton(this));
answer.setId(j);
answer.setText(an.getAnswer());
answerGroup.addView(answer);
j++;
}
}
linearLayout.addView(answerGroup);
i++;
}
finishButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < numberOfQuestions; i++) {
for (int j = 0; j < numberOfAnswers; j++) {
answerGroupList.get(j).setEnabled(false); // doesn't work
}
}
}
});
谢谢!
在整个 radioGroup
上使用 setEnabled(false)
是不够的,您必须遍历 radioGroup
中的每个项目并将每个子项设置为 false
.
集成到您的代码中的内容类似于:
for (int i = 0; i < numberOfQuestions; i++)
{
for (int j = 0; j < numberOfAnswers; j++)
{
for (int k = 0; k < answerGroupList.get(j).getChildCount(); k++)
{
((RadioButton) answerGroupList.get(j).getChildAt(k)).setEnabled(false);
}
}
}
我以编程方式创建了几个单选组,每个单选组有 4 个单选按钮。我也在我创建的完成按钮上设置了 OnClickListener。我希望当有人单击该按钮时,启用名为 answerGroupList
的 ArrayList
中的所有无线电组。我怎样才能做到这一点?
这是我的代码:
List<RadioGroup> answerGroupList = new ArrayList<>();
List<RadioButton> answerList = new ArrayList<>();
int i = 0;
for (Question qn : questions) {
RadioGroup answerGroup = new RadioGroup(this);
answerGroupList.add(new RadioGroup(this));
answerGroup.setId(i);
int j = 0;
for (Answer an : answers) {
if (qn.getID() == an.getQuestion_id_answer()) {
RadioButton answer = new RadioButton(this);
answerList.add(new RadioButton(this));
answer.setId(j);
answer.setText(an.getAnswer());
answerGroup.addView(answer);
j++;
}
}
linearLayout.addView(answerGroup);
i++;
}
finishButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < numberOfQuestions; i++) {
for (int j = 0; j < numberOfAnswers; j++) {
answerGroupList.get(j).setEnabled(false); // doesn't work
}
}
}
});
谢谢!
在整个 radioGroup
上使用 setEnabled(false)
是不够的,您必须遍历 radioGroup
中的每个项目并将每个子项设置为 false
.
集成到您的代码中的内容类似于:
for (int i = 0; i < numberOfQuestions; i++)
{
for (int j = 0; j < numberOfAnswers; j++)
{
for (int k = 0; k < answerGroupList.get(j).getChildCount(); k++)
{
((RadioButton) answerGroupList.get(j).getChildAt(k)).setEnabled(false);
}
}
}