我想在按下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");
}
}
});
答案 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
。