如何在 Android 中设置启用数组列表中的所有无线电组?

How to set enabled all radio groups from an Array List in Android?

我以编程方式创建了几个单选组,每个单选组有 4 个单选按钮。我也在我创建的完成按钮上设置了 OnClickListener。我希望当有人单击该按钮时,启用名为 answerGroupListArrayList 中的所有无线电组。我怎样才能做到这一点? 这是我的代码:

    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);
        }
    }
}