Android 我想在单击复选框时更改图像
我希望当我第一次单击此复选框时,它应该从我的图像视图中更改图像,当我再次单击同一复选框时,它应该使用另一个图像更改图像视图中的图像 我试过:-Android 我想在单击复选框时更改图像,android,checkbox,Android,Checkbox,我希望当我第一次单击此复选框时,它应该从我的图像视图中更改图像,当我再次单击同一复选框时,它应该使用另一个图像更改图像视图中的图像 我试过:- checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
myImage.setBackgroundResource(R.drawable.saveimage);
}else{
myImage.setBackgroundResource(R.drawable.deleteimage);
}
}
});
除了没有使用setchecked方法之外,代码没有任何问题。选中复选框时,调用
checkbox.setchecked(true)
;取消选中复选框时,调用checkbox.setchecked(false)
因为您的图像是可绘制的,所以我认为您应该尝试以下方法:
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
myImage.setImageDrawable(getResources().getDrawable(R.drawable.saveimage,getApplicationContext().getTheme()));
}else{
myImage.setImageDrawable(getResources().getDrawable((R.drawable.deleteimage,getApplicationContext().getTheme()));
}
}
});
完成了:-
全局获取(布尔值switchStatus=false)
检查当前代码出了什么问题?是否有任何错误?用myImage.setImageResource()替换代码@Michael Dodd和Rohit5k2当我第一次选中复选框时,它没有显示任何错误,它在我的图像视图中设置了一个图像,但当我再次单击它时,它没有执行任何操作。该代码可以简化。使用
if(switchStatus){
,在if/else
语句结束后,使用switchStatus=!switchStatus
来翻转其值,而不是手动设置为true
或false
。您希望我用这种简化方式编辑您的答案吗?(说实话,使用a也可以将代码减少到3行,但这对于这个问题的范围来说可能有点太高级了)
if(switchStatus == true){
dialog.dismiss();
image1.setImageResource(R.drawable.icon_delete);
switchStatus = false;
}else{
dialog.dismiss();
image1.setImageResource(R.drawable.icon_checkmark);
switchStatus = true;
}