如何为Android中所有无线电组中的所有单选按钮设置背景

时间:2015-10-30 18:27:12

标签: java android loops for-loop

我正在尝试使用红色背景制作所有无线电组,并使用白色背景制作所有单选按钮。使用此代码,所有无线电组都获得红色背景,但只有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);
                }
            }
        }
    });

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

机器人:背景= “#FF0000”

它会为您的电台组提供红色背景。和

机器人:背景= “#FFFFFF”

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