Android 如何在Java中为所有单选按钮设置文本颜色?

Android 如何在Java中为所有单选按钮设置文本颜色?,android,Android,我以编程方式创建了5个单选组,每个组有4个单选按钮。每个单选按钮代表一个问题的答案。当有人检查正确答案时,我想发送一条消息(效果很好),然后,如果有人按下按钮,我想将所有正确答案设置为绿色。有了这个代码,当我按下按钮时,一个单一的答案变成绿色,这是上一个广播组的正确答案。当我按下按钮时,我希望所有广播组的正确答案都变成绿色。我错在哪里? 这是我的密码: RadioGroup[] radioGroup; RadioButton[] answer; RadioButton checkedRadioB

我以编程方式创建了5个单选组,每个组有4个单选按钮。每个单选按钮代表一个问题的答案。当有人检查正确答案时,我想发送一条消息(效果很好),然后,如果有人按下按钮,我想将所有正确答案设置为绿色。有了这个代码,当我按下按钮时,一个单一的答案变成绿色,这是上一个广播组的正确答案。当我按下按钮时,我希望所有广播组的正确答案都变成绿色。我错在哪里? 这是我的密码:

RadioGroup[] radioGroup;
RadioButton[] answer;
RadioButton checkedRadioButton;

    radioGroup = new RadioGroup[5];
    answer = new RadioButton[4];
    int i = 0;
    for (Question qn : questions) {
        radioGroup[i] = new RadioGroup(this);
        int j = 0;
        for (Answer an : answers) {
            if (qn.getID() == an.getQuestion_id_answer()) {
                answer[j] = new RadioButton(this);
                radioGroup[i].addView(answer[j]);

                answer[j].setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        checkedRadioButton = ((RadioButton) v);
                        int CorrectAnswer = Integer.parseInt(checkedRadioButton.getTag().toString());
                        if (checkedRadioButton.isChecked() & CorrectAnswer == 1) {
                            Toast.makeText(getApplicationContext(), "Correct answer checked", Toast.LENGTH_SHORT).show();
                        }
                    }
                });
                j++;
            }
        }
        linearLayout.addView(radioGroup[i]);
        i++;
    }

    finishButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            checkedRadioButton.setTextColor(Color.GREEN);
            for (int i = 0; i < radioGroup.length; i++) {
                for (int j = 0; j < answer.length; j++) {
                    radioGroup[i].getChildAt(j).setEnabled(false);
                }
            }
        }
    });
RadioGroup[]RadioGroup;
无线电按钮[]应答;
无线电按钮检查无线电按钮;
放射组=新放射组[5];
答案=新的单选按钮[4];
int i=0;
(问题qn:问题){
放射组[i]=新放射组(本);
int j=0;
for(答案A:答案){
if(qn.getID()==an.getQuestion\u id\u answer()){
回答[j]=新单选按钮(本);
放射组[i].addView(答案[j]);
回答[j]。setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(视图v){
选中RadioButton=((单选按钮)v);
int CorrectAnswer=Integer.parseInt(checkedRadioButton.getTag().toString());
if(checkedRadioButton.isChecked()&CorrectAnswer==1){
Toast.makeText(getApplicationContext(),“已检查正确答案”,Toast.LENGTH\u SHORT.show();
}
}
});
j++;
}
}
linearLayout.addView(放射组[i]);
i++;
}
finishButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
选中RadioButton.setTextColor(Color.GREEN);
对于(int i=0;i

谢谢

查看代码后的问题是,您的所有按钮都具有相同的ID,并且您只获取所选按钮的ID,而不管其是否正确。我所做的是添加了一个数组列表,其中包含正确的RAD,然后将它们设置为绿色:)


非常感谢你!最好的答案。
    for (Answer an : answers) {
            if (qn.getID() == an.getQuestion_id_answer()) {
                answer[j] = new RadioButton(this);
                answer[j].setText(an.getAnswer());
                answer[j].setId(j + 100);
                answer[j].setTag(String.valueOf(an.getCorrect_answer()));
                if(answer[j].getTag().toString().equals("1")){
                    correctAnswerRadios.add(answer[j]);
                }
                radioGroup[i].addView(answer[j]);