所以我有一个ImageView,它具有一定的图像资源image1
,当我单击图像时,我将其更改为另一个图像资源image2
,我想要的是能够将其更改回image1
以此类推。我尝试的是以下内容,但它不起作用。
public void methodName(){
final ImageView imageNo1 = (ImageView) findViewById(R.id.imageID);
Drawable seatDrawable = imageNo1.getDrawable();
imageNo1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(imageNo1.getDrawable()==getResources().getDrawable(R.drawable.image1)){
imageNo1.setImageResource(R.drawable.image2);
} else {
imageNo1.setImageResource(R.drawable.image1);
}
}
});
}
我还尝试将布尔值设置currentState
为false并在单击后在if语句中对其进行更改,但这也不起作用。那么我该如何工作呢?
这是我的习惯 currentState
public void methodName(){
private boolean currentState = false;
final ImageView imageNo1= (ImageView) findViewById(R.id.imageID);
imageNo1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(currentState = false){
imageNo1.setImageResource(R.drawable.image2);
currentState = true;
} else if(currentState = true) {
imageNo1.setImageResource(R.drawable.image1);
}
}
});
}
解决方案:感谢dhaval为该解决方案提供setTag和getTag
我尝试过这种方式,它工作正常:
public void methodName(){
imgView = (ImageView) findViewById(R.id.imgView);
imgView.setTag(1);
imgView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(imgView.getTag() == 1){
imgView.setImageResource(R.drawable.abc_btn_rating_star_off_mtrl_alpha);
imgView.setTag(2);
}else{
imgView.setImageResource(R.drawable.abc_btn_rating_star_on_mtrl_alpha);
imgView.setTag(1);
}
}
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句