Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中为所有单选组中的所有单选按钮设置文本颜色_Java_Android_Loops_For Loop_Onclicklistener - Fatal编程技术网

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

如何在Java中为所有单选组中的所有单选按钮设置文本颜色,java,android,loops,for-loop,onclicklistener,Java,Android,Loops,For Loop,Onclicklistener,我正在尝试将文本颜色设置为红色,用于所有单选按钮,但来自我拥有的所有单选组。什么时候使用回答[i].setTextColor(Color.RED)这仅适用于最后一个无线电组 如果尝试使用radioGroup[i].getChildAt(j).setBackgroundColor(color.GREEN)将背景色更改为所有单选按钮我收到以下错误:尝试在空对象引用上调用虚拟方法“android.view.view android.widget.RadioGroup.getChildAt(int)”

我正在尝试将文本颜色设置为红色,用于所有单选按钮,但来自我拥有的所有单选组。什么时候使用
回答[i].setTextColor(Color.RED)这仅适用于最后一个无线电组

如果尝试使用
radioGroup[i].getChildAt(j).setBackgroundColor(color.GREEN)将背景色更改为所有单选按钮我收到以下错误:
尝试在空对象引用上调用虚拟方法“android.view.view android.widget.RadioGroup.getChildAt(int)”

我怎样才能解决这个问题?还有其他方法吗?
这是我的密码:

    radioGroup = new RadioGroup[4];
    answer = new RadioButton[4];
    for (Question qn : questions) {
        int i = 0;
        radioGroup[i] = new RadioGroup(this);
        radioGroup[i].setOrientation(RadioGroup.VERTICAL);
        int j = 0;
        for (Answer an : answers) {
            if (qn.getID() == an.getQuestion_id_answer()) {
                String answers_log = " " + an.getAnswer();
                answer[j] = new RadioButton(this);
                answer[j].setText(answers_log);
                radioGroup[i].addView(answer[j]);
                j++;
            }
        }
        linearLayout.addView(radioGroup[i]);
        i++;
    }

    finishButton = new Button(this);
    linearLayout.addView(finishButton);

    finishButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for (int i = 0; i < radioGroup.length; i++) {
                for (int j = 0; j < answer.length; j++) {
                    answer[i].setTextColor(Color.RED);
                }
            }
        }
    });
radioGroup=新的radioGroup[4];
答案=新的单选按钮[4];
(问题qn:问题){
int i=0;
放射组[i]=新放射组(本);
放射组[i].setOrientation(放射组.垂直);
int j=0;
for(答案A:答案){
if(qn.getID()==an.getQuestion\u id\u answer()){
字符串answers_log=”“+an.getAnswer();
回答[j]=新单选按钮(本);
答案[j].setText(答案记录);
放射组[i].addView(答案[j]);
j++;
}
}
linearLayout.addView(放射组[i]);
i++;
}
finishButton=新按钮(此按钮);
linearLayout.addView(finishButton);
finishButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(int i=0;i
谢谢

试试这个:

finishButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        for (int i = 0; i < 4; i++) {
            radioGroup[i].clearCheck();
            for (int j = 0; j < 4; j++) {
                radioGroup[i].getChildAt(j).setEnabled(true);
                ((RadioButton)radioGroup[i].getChildAt(j)).setTextColor(Color.RED);
                ((RadioButton)radioGroup[i].getChildAt(j)).setChecked(false);
            }
        }
    }
});
finishButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(int i=0;i<4;i++){
放射组[i].clearCheck();
对于(int j=0;j<4;j++){
radioGroup[i].getChildAt(j).setEnabled(true);
((RadioButton)放射组[i].getChildAt(j)).setTextColor(Color.RED);
((RadioButton)放射组[i].getChildAt(j)).setChecked(false);
}
}
}
});
试试这个:

finishButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        for (int i = 0; i < 4; i++) {
            radioGroup[i].clearCheck();
            for (int j = 0; j < 4; j++) {
                radioGroup[i].getChildAt(j).setEnabled(true);
                ((RadioButton)radioGroup[i].getChildAt(j)).setTextColor(Color.RED);
                ((RadioButton)radioGroup[i].getChildAt(j)).setChecked(false);
            }
        }
    }
});
finishButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(int i=0;i<4;i++){
放射组[i].clearCheck();
对于(int j=0;j<4;j++){
radioGroup[i].getChildAt(j).setEnabled(true);
((RadioButton)放射组[i].getChildAt(j)).setTextColor(Color.RED);
((RadioButton)放射组[i].getChildAt(j)).setChecked(false);
}
}
}
});

更新

请尝试以下代码:

    radioGroup = new RadioGroup[4];
    answer = new RadioButton[4];
    int i = 0;
    for (Question qn : questions) {
        radioGroup[i] = new RadioGroup(this);
        radioGroup[i].setOrientation(RadioGroup.VERTICAL);
        int j = 0;
        for (Answer an : answers) {
            if (qn.getID() == an.getQuestion_id_answer()) {
                String answers_log = " " + an.getAnswer();
                answer[j] = new RadioButton(this);
                answer[j].setText(answers_log);
                radioGroup[i].addView(answer[j]);
                j++;
            }
        }
        linearLayout.addView(radioGroup[i]);
        i++;
    }

    finishButton = new Button(this);
    linearLayout.addView(finishButton);

    finishButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for (int i = 0; i < radioGroup.length; i++) {
                for (int j = 0; j < radioGroup[i].getChildCount(); j++) {
                    radioGroup[i].getChildAt(j).setBackgroundColor(Color.GREEN);
                }
            }
        }
    });
radioGroup=新的radioGroup[4];
答案=新的单选按钮[4];
int i=0;
(问题qn:问题){
放射组[i]=新放射组(本);
放射组[i].setOrientation(放射组.垂直);
int j=0;
for(答案A:答案){
if(qn.getID()==an.getQuestion\u id\u answer()){
字符串answers_log=”“+an.getAnswer();
回答[j]=新单选按钮(本);
答案[j].setText(答案记录);
放射组[i].addView(答案[j]);
j++;
}
}
linearLayout.addView(放射组[i]);
i++;
}
finishButton=新按钮(此按钮);
linearLayout.addView(finishButton);
finishButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(int i=0;i
更新

请尝试以下代码:

    radioGroup = new RadioGroup[4];
    answer = new RadioButton[4];
    int i = 0;
    for (Question qn : questions) {
        radioGroup[i] = new RadioGroup(this);
        radioGroup[i].setOrientation(RadioGroup.VERTICAL);
        int j = 0;
        for (Answer an : answers) {
            if (qn.getID() == an.getQuestion_id_answer()) {
                String answers_log = " " + an.getAnswer();
                answer[j] = new RadioButton(this);
                answer[j].setText(answers_log);
                radioGroup[i].addView(answer[j]);
                j++;
            }
        }
        linearLayout.addView(radioGroup[i]);
        i++;
    }

    finishButton = new Button(this);
    linearLayout.addView(finishButton);

    finishButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for (int i = 0; i < radioGroup.length; i++) {
                for (int j = 0; j < radioGroup[i].getChildCount(); j++) {
                    radioGroup[i].getChildAt(j).setBackgroundColor(Color.GREEN);
                }
            }
        }
    });
radioGroup=新的radioGroup[4];
答案=新的单选按钮[4];
int i=0;
(问题qn:问题){
放射组[i]=新放射组(本);
放射组[i].setOrientation(放射组.垂直);
int j=0;
for(答案A:答案){
if(qn.getID()==an.getQuestion\u id\u answer()){
字符串answers_log=”“+an.getAnswer();
回答[j]=新单选按钮(本);
答案[j].setText(答案记录);
放射组[i].addView(答案[j]);
j++;
}
}
linearLayout.addView(放射组[i]);
i++;
}
finishButton=新按钮(此按钮);
linearLayout.addView(finishButton);
finishButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(int i=0;i
我太棒了

你只想得到4个
RadioGroup
和4个
RadioButton

将(b:bs)
更改为(int i=0;i的
我太棒了

你只想得到4个
RadioGroup
和4个
RadioButton


将(b:bs)
更改为(int i=0;i)的
因为样式更容易使用,无论如何,我看不到调用getChildAt()的行谢谢,但我需要它动态。没有关于setTextColor的代码?你可以动态应用样式…你的逻辑很奇怪。你在手机中看到视图了吗?也许样式更容易使用,无论如何,我看不到你调用getChildAt()的行谢谢,但我需要动态。没有关于setTextColor的代码?你可以动态应用样式…你的逻辑很奇怪。你在手机中看到视图了吗?相同错误: