Android 双击按钮的动作,如何做好呢
我为双击创建了这个Android 双击按钮的动作,如何做好呢,android,Android,我为双击创建了这个 private int pos = 0; private void changeImageVolumeOffOn() { buttonMuteVolume.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (pos == 0) {
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);
}
}
});
}
但我认为这不是一个好办法。我需要紧急更改图像,仅用于将其显示给我的朋友。如何为单击执行双重操作?使用可绘制两种状态的选择器xml。
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);
}
}
});
}
已选择-卷打开
未选择-音量关闭
如果有任何点击发生
布尔newState=button.isSelected()?false:true;
按钮。选择设置(新闻状态)
这将解决您的问题您也可以这样尝试
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;
}
}
});
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);
}
}
}
});
}
要删除if语句,可以使用
你只是想在每次单击时更改图像吗?是的,我的逻辑是这样做的,但我认为代码是错误的,因为你的代码不工作???@Rodriquez你也可以像获取图像名称字符串imageName=(String)img.getTag();工作,但这代码是像“疯狂”的mecan u说更多?我创建了如下内容:将该选择器设置为按钮的背景。buttonMuteVolume.setOnClickListener(新视图.OnClickListener(){@Override public void onClick(视图v){boolean isSelected=v.isSelected();v.setSelected(!isSelected;}});为什么需要整数?您无法将true/false实现为int
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);
}
});
}