android中Onclick上具有布尔值的图像
我只是想知道是否有办法将布尔值(真和假)传递给图像。android中Onclick上具有布尔值的图像,android,android-intent,Android,Android Intent,我只是想知道是否有办法将布尔值(真和假)传递给图像。 我在这里试图做的是将图像作为一种开关。当我按下图像时,它将返回值true,当我再次按下它时,它将返回值,依此类推 更像是,当用户单击图像时,图像将充当一个切换按钮或一个复选框,它将返回true,然后再次单击时,值将为false。当该值为true时,映像将启动我的服务项目,当用户再次单击映像时,它将停止服务。每个视图都有其“setTag()”方法。你可以按照下面的方法使用它 public static int Count=0; Myim
我在这里试图做的是将图像作为一种
开关
。当我按下图像时,它将返回值true,当我再次按下它时,它将返回值,依此类推
更像是,当用户单击图像时,图像将充当一个切换按钮
或一个复选框
,它将返回true,然后再次单击时,值将为false。当该值为true时,映像将启动我的服务项目,当用户再次单击映像时,它将停止服务。每个视图都有其“setTag()”方法。你可以按照下面的方法使用它
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;
}
}
});
//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
}
}
每个视图都有其“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
}
}
您可以使用
标志
像这样的
boolean flag = false;
内部onClick
方法
flag = !flag;
检查
标志是否为真
,然后启动服务
,否则停止服务
您可以使用标志
像这样的
boolean flag = false;
内部onClick
方法
flag = !flag;
检查标志是否为true
,然后启动服务
,否则停止服务
最干净的方法是创建一个新类。从ImageView派生它,并使用一个在onTouchEvent中接收到触摸运动事件时切换的标志。然后,您可以根据该标志的值覆盖您想要的任何其他行为。最干净的方法是创建一个新类。从ImageView派生它,并使用一个在onTouchEvent中接收到触摸运动事件时切换的标志。然后,您可以根据该标志的值覆盖您想要的任何其他行为。另一个选项是扩展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.
}
});
另一个选项是扩展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.
}
});
你在说什么?你只需要维护一个计数器就可以了!onClick将计数增加1,如果数字为奇数,则返回true;如果为偶数,则返回false!哇,谢谢adnan,我会尝试一下,一个没有真正考虑过的人,谢谢你,你可以使用视图的标记属性来实现这种行为……你在说什么?你可以维护一个计数器并实现它!onClick将计数增加1,如果数字为奇数,则返回true;如果为偶数,则返回false!哇,谢谢adnan,我会尝试一个没有真正考虑过的问题谢谢你可以使用视图的标记属性来实现这种行为给我时间来尝试你的答案谢谢你我应该用图像id更改视图中的视图。settag1?所以我需要更改视图中的视图。setTag(1)使用我的图像ID?im,我尝试了这个,但在int-flag-view.getTag()中出现错误部分。我可以运行它,但我有问题,它只返回假值,所以他一直返回null,但当我将其更改为0时,它一直返回真值,它不会转到其他部分:)但这一部分真的很有帮助,谢谢你,我如何将1设置为真,将0设置为假?我会按照你的代码:)它工作了,谢谢你这么多的关注作为另一个问题,请给我时间尝试您的答案谢谢我应该用图像id更改view in view.settag1吗?因此我需要用图像id更改view in view.setTag(1)吗?我尝试了这个问题,但在int flag-view.getTag()中出错部分。我可以运行它,但我有问题,它只返回假值,所以他一直返回null,但当我将其更改为0时,它一直返回真值,它不会转到其他部分:)但这一部分真的很有帮助,谢谢你,我如何将1设置为真,将0设置为假?我会按照你的代码:)它工作了,谢谢你这么多的关注作为另一个问题,您也可以在单击事件中使用切换案例而不是if-else。我如何进行切换?您也可以在单击事件中使用切换案例而不是if-else。我如何进行切换?