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

Java 如何在Android中设置阵列列表中启用的所有无线组?,java,android,loops,onclicklistener,radio-group,Java,Android,Loops,Onclicklistener,Radio Group,我以编程方式创建了几个单选组,每个组有4个单选按钮。我在我创建的finish按钮上设置了OnClickListener。我希望当有人单击按钮时,将名为answerGroupList的ArrayList中的所有无线组设置为启用。我该怎么做? 这是我的密码: List<RadioGroup> answerGroupList = new ArrayList<>(); List<RadioButton> answerList = new ArrayLi

我以编程方式创建了几个单选组,每个组有4个单选按钮。我在我创建的finish按钮上设置了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
                }
            }
        }
    });
谢谢

在整个放射组上使用setEnabledfalse是不够的,您必须遍历放射组中的每个项目,并将每个子项设置为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);
        }
    }
}

编辑:或者如何将ArrayList中名为answerList的所有单选按钮设置为启用?只需编辑您的帖子,不要直接在帖子后面添加评论。还有,stacktrace是什么?不工作是不够的信息不幸的是,很抱歉,但我不能编辑一篇文章后,它被发送。这意味着当我按下按钮时什么也没发生。谢谢。如果我做了这些更改,它会说变量“answerGroupList”是从内部类访问的,需要声明为final。如果我将其声明为final,则会出现以下错误:无法解析方法getChildAtk.Uusally这意味着如果两个方法看到相同的局部变量,Java希望您不要更改它。但是,您可能不希望这样。尝试将其设置为全局变量。我只是尝试将变量answerGroupList设置为全局变量,如下所示,public ArrayList answerGroupList;但它不起作用。同样的问题。我错了吗?我可以检查一下你是在类级别声明的,而不是在方法中声明的吗?这也适用于尝试将其更改为最终,因为我们还有另一个更改。我将变量声明为全局变量,如下所示:List answerGroupList=new ArrayList;。当我打开应用程序时,什么也没发生。单选按钮保持启用状态。