单引用创建动态按钮

时间:2012-06-04 12:04:25

标签: android

这里我使用for循环

动态创建20 Button

exmple

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);


        }
);

}

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

2 个答案:

答案 0 :(得分: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;
            }
    );
}

答案 1 :(得分:-1)

你确定使用20个按钮是个不错的选择吗? 你能用GridView吗? 您也可以更改backGroundColor:forums.pragprog.com/forums/152/topics/10301