使用另一个按钮更改按钮背景:Android

时间:2014-05-29 15:42:35

标签: android tags android-drawable

我想在按下button2时更改button1背景,然后再次按下button2时我想要button1更改回原始背景。所以基本上每次按下button2,button1都会来回改变背景。

我创建了自定义按钮xml,它位于可绘制文件夹中。

这是我的代码的一部分:

button1.setTag("0");
button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if (button1.getTag() == "0") {
            button1.setBackgroundResource(R.drawable.customButton_layout1); 
            button1.setTag("1");                      
        }

        if (button1.getTag() == "1") {
            button1.setBackgroundResource(R.drawable.customButton_layout2);
            button1.setTag("0");
        }
    }
}); 

4 个答案:

答案 0 :(得分:2)

比较字符串时,您应使用.equals(),因此您应将button1.getTag() == "0"更改为button1.getTag().equals("0")

答案 1 :(得分:0)

这种方式按钮将始终具有第二个背景,因为在第一个if语句后面也将执行。

在第二个if语句之前放置else,它应该可以工作。

在比较字符串时也使用equals,就像Uxonith建议的那样。

答案 2 :(得分:0)

非常简单。试试这种方式:

Button but1,but2;
int count = 0;
but1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

count++;
if(count%2==0){
but2.setBackgroundResource(R.drawable.customButton_layout1); }
else{
but2.setBackgroundResource(R.drawable.customButton_default);
}
}
d});

此处计数器切换but2的可绘制。

答案 3 :(得分:0)

只需在第二个else之前添加if