我只是想知道是否有办法将布尔值(真假)传递给图像。
我在这里要做的是将图像制作为一种switch
. 当我按下图像时,它将返回值 true,当我再次按下它时,它将返回值值,依此类推。
更像是图像将充当 aToggleButton
或 a Checkbox
,当用户单击时,它将返回 true,然后再次单击时,该值将为 false。当值为 true 时,图像将启动我的服务项目,当用户再次单击图像时,它将停止服务。
我只是想知道是否有办法将布尔值(真假)传递给图像。
我在这里要做的是将图像制作为一种switch
. 当我按下图像时,它将返回值 true,当我再次按下它时,它将返回值值,依此类推。
更像是图像将充当 aToggleButton
或 a Checkbox
,当用户单击时,它将返回 true,然后再次单击时,该值将为 false。当值为 true 时,图像将启动我的服务项目,当用户再次单击图像时,它将停止服务。
每个视图都有其“setTag()”方法。您可以通过以下方式使用它。
//say 1 is for true
view.setTag(1);
//say 0 is for false
view.setTag(0);
要检索价值,
int flag = (Integer) view.getTag();
if(flag==1)
//true condition
else
//false condition
编辑
如果您在标签中设置了 id,以下将是您检索该 id 的代码。
view.setTag(view.getId());
//...
int id = (Integer) view.getTag();
代码
scanButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
int flag = (Integer)view.getTag();
if(flag==1){
//change to 0 here
view.setTag(0);
//rest of code
}else
{
//change to 1 here
view.setTag(1);
//rest of code
}
}
最干净的方法是创建一个新类。从 ImageView 派生它,并使用在 onTouchEvent 中收到 TOUCH_UP 运动事件时切换的标志。然后,您可以根据该标志的值覆盖您想要的任何其他行为。
另一种选择是扩展 ImageView 类,在其中包含您自己的属性,并在您的 OnCLickListener 中访问所需的属性。
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// cast to the custom class
CustomImageView customImageView=(CustomgImageView)v;
//access the attributes and perform the required action.
}
});
public static int Count=0;
Myimageview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(Count==0)
{
//Toggle On
//Start Service;
Count=1;
}
else
{
//Toggle Off
//Stop Service
Count=0;
}
}
});
你可以使用一个flag
像这样的东西
boolean flag = false;
内部onClick
方法
flag = !flag;
并检查是否flag
是true
然后启动,service
否则stop
是service
。