Java 如何设置Android中所有单选组中所有单选按钮的背景

Java 如何设置Android中所有单选组中所有单选按钮的背景,java,android,loops,for-loop,Java,Android,Loops,For Loop,我试图使所有的广播组与红色背景和所有的单选按钮与白色背景。使用此代码,所有单选组都会获得红色背景,但只有最后4个单选按钮才会获得白色背景。我能做些什么,将所有单选按钮的白色背景设置为所有单选组? 这是我的代码: finishButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { for (int i

我试图使所有的广播组与红色背景和所有的单选按钮与白色背景。使用此代码,所有单选组都会获得红色背景,但只有最后4个单选按钮才会获得白色背景。我能做些什么,将所有单选按钮的白色背景设置为所有单选组? 这是我的代码:

    finishButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for (int i = 0; i < 4; i++) {
                radioGroup[i].setBackgroundColor(Color.RED);
                for (int j = 0; j < 4; j++) {
                    radioButton[j].setBackgroundColor(Color.WHITE);
                }
            }
        }
    });
finishButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(int i=0;i<4;i++){
放射组[i].setBackgroundColor(Color.RED);
对于(int j=0;j<4;j++){
单选按钮[j].setBackgroundColor(颜色.白色);
}
}
}
});

谢谢

您的
radioButton
阵列从未更改。它的值与进入循环之前的值相同。试试这个:

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

由于我不知道您的剩余代码,您可能会找到一种更智能的方法来访问前三个radioButton阵列

更简单的方法是使用以下属性在xml中的radioGroup和radioButton中定义背景:-

android:background=“#FF0000”

它将为您的广播组提供红色背景。及

android:background=“#FFFFFF”


它将为您的单选按钮提供白色背景。注意,如果您希望在所有按钮中定义此属性,则需要在所有按钮中定义此属性。

显然,他希望在单击时动态地执行此操作。您将如何在XML中执行此操作?@Hermann-Hmm,我不知道OP是否编写了动态操作。谢谢,但我需要动态操作。您想在第二个循环中使用
j
作为子循环的计数器是行不通的。只有第一个单选组中的第一个单选按钮获得白色背景,只有第二个单选组中的第二个单选按钮获得白色背景,只有第三个单选组中的第三个单选按钮获得白色背景,而从第四个单选组中的第四个单选按钮获得白色背景。@AlexM。好吧,看看JonnyAW的提示,再试一次。对于
radioGroup[]
来说是
i
,对于
getChildAt()
来说是
j
,没有问题,但是“接受”是什么意思呢?我是新来的。