我在动作栏中有一个星形图像。当我点击它时,图像应该变为ON星。这工作正常。但是如何知道图像是处于ON状态还是OFF状态。我想要一些东西,如果图像处于OFF模式并且用户点击ON星形,那么它应该设置为ON星形图像。最初,图像设置为OFF模式。所以对于这个,我写了一个让行在用户点击它时打开:
v.setBackgroundResource(android.R.drawable.star_big_on);
如果星形图像已经打开,大家会建议我使用OFF模式。我不知道。
答案 0 :(得分:3)
您可以通过设置每个图像的标记或比较资源来轻松检查 资源方法的比较如下:
if (regProfile.getDrawable().getConstantState() ==
getResources().getDrawable(R.drawable.ivpic).getConstantState()){
Toast.makeText(_con, "Image is ivPic", Toast.LENGTH_LONG).show();
} else{
Toast.makeText(_con, "Image isn't ivPic", Toast.LENGTH_LONG).show();
}
答案 1 :(得分:0)
如果我的猜测是正确的,你可以实现这样的功能。相应地改变这个代码用于图像onclick
private Button button;
public static boolean isclick=false;
button.setOnClickListener(seathtlistner);
private View.OnClickListener seathtlistner = new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(isclick){
button.setBackgroundResource(R.drawable.onstarimage);
}else{
button.setBackgroundResource(R.drawable.offstarimage);
}
isclick=!isclick;
}
答案 2 :(得分:0)
您可以使用Tag属性。
img_view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Boolean tag_isOn = (Boolean) v.getTag();
tag_isOn = !tag_isOn;
v.setBackgroundResource(tag_isOn ?android.R.drawable.star_big_on:android.R.drawable.star_big_off);
v.setTag(tag_isOn);
}
});
答案 3 :(得分:0)
if (img_like.getTag() != null && img_like.getTag().toString().equals("red")) {
img_like.setImageResource(R.drawable.heart);
img_like.setTag("heart");
} else {
img_like.setImageResource(R.drawable.red);
img_like.setTag("red");
}`enter code here`