我为点击
创建了双重操作private int pos = 0;
private void changeImageVolumeOffOn() {
buttonMuteVolume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (pos == 0) {
pos++;
buttonMuteVolume.setBackgroundResource(R.drawable.volume_off);
} else {
pos--;
buttonMuteVolume.setBackgroundResource(R.drawable.volume_on);
}
}
});
}
但我认为这不是做这件事的好方法。我需要紧急更改图像,仅用于向朋友展示。如何进行双击动作?
答案 0 :(得分:1)
要删除if语句,您可以使用ternary operator
boolean clicked = false;
private void changeImageVolumeOffOn() {
buttonMuteVolume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clicked = !clicked;
buttonMuteVolume.setBackgroundResource(clicked ? R.drawable.volume_off : R.drawable.volume_on);
}
});
}
答案 1 :(得分:0)
boolean clicked = false;
private void changeImageVolumeOffOn() {
buttonMuteVolume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clicked = !clicked;
if (clicked) {
buttonMuteVolume.setBackgroundResource(R.drawable.volume_off);
} else {
buttonMuteVolume.setBackgroundResource(R.drawable.volume_on);
}
}
});
}
答案 2 :(得分:0)
使用带有两个可绘制状态的选择器xml。 选定 - 量上 未选中 - 音量关闭
如果发生任何点击 boolean newState = button.isSelected()?false:true; button.setSelected(newState);
这将解决您的问题
答案 3 :(得分:0)
int isClicked=false
buttonMuteVolume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isClicked) {
buttonMuteVolume.setBackgroundResource(R.drawable.volume_off);
isClicked=false;
} else {
buttonMuteVolume.setBackgroundResource(R.drawable.volume_on);
isClicked=true;
}
}
});
答案 4 :(得分:0)
你也可以这样试试。
private void changeImageVolumeOffOn() {
buttonMuteVolume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String backgroundImageName = String.valueOf(v.getTag());
if(backgroundImageName=="volume_off" ){
buttonMuteVolume.setBackgroundResource(R.drawable.volume_on);
}else {
buttonMuteVolume.setBackgroundResource(R.drawable.volume_off);
}
}
}
});
}