0

在这里,我正在使用 for 循环动态创建 20 个按钮

例子

for(int i =1 ;i <= 20 ;i++){
Button b = new Button(this);
b.setText(String.valueOf(i));
b.setId(String.valueOf(i));
b.setBackgroudColor(Color.Red);

b.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            b.setBackgroundColor(Color.GREEN);


        }
);

}

如果我选择第一个按钮颜色将变为绿色,其余全部为红色。同样,如果我选择第 2 个按钮,第 1 个和第 2 个按钮颜色将为绿色,其余均为红色。这是它工作正常的方式。但我的要求是,如果我第二次选择任何按钮,所有按钮和我按下的上一个按钮颜色应该是红色。要做到这一点,我没有得到以前的按钮 ID。可以解决这个问题吗

4

2 回答 2

0

保持先前按下按钮的引用:

final Button prevButton;
for(int i =1 ;i <= 20 ;i++){
    Button b = new Button(this);    
    b.setText(String.valueOf(i));
    b.setId(String.valueOf(i));
    b.setBackgroudColor(Color.Red);

    b.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                if(prevButton != null)
                    prevButton.setBackgroundColor(Color.RED);
                b.setBackgroundColor(Color.GREEN);
                prevButton = (Button)v;
            }
    );
}
于 2012-06-04T12:11:15.440 回答
-1

您确定使用 20 Buttons 是一个不错的选择吗?你可以使用 GridView 吗?您也可以更改背景颜色:forums.pragprog.com/forums/152/topics/10301

于 2012-06-04T12:15:20.937 回答