Java 安卓润色不起作用
我一直在安卓系统中做这个项目,我想弄明白为什么这个不起作用,但我不知道。顺便说一下,这是一个自定义视图,以防万一 问题是,事件操作“关闭”工作正常,我正在进行控制台调试“触摸1”和“触摸2”,但操作“打开”,操作“取消”或默认:不工作,我无法解决此问题,因此非常感谢您的帮助谢谢Java 安卓润色不起作用,java,android,android-event,Java,Android,Android Event,我一直在安卓系统中做这个项目,我想弄明白为什么这个不起作用,但我不知道。顺便说一下,这是一个自定义视图,以防万一 问题是,事件操作“关闭”工作正常,我正在进行控制台调试“触摸1”和“触摸2”,但操作“打开”,操作“取消”或默认:不工作,我无法解决此问题,因此非常感谢您的帮助谢谢 public void doTouch(MotionEvent event) { int action = event.getAction();
public void doTouch(MotionEvent event)
{
int action = event.getAction();
float x = event.getX();
float y = event.getY();
switch(action)
{
case MotionEvent.ACTION_DOWN:
if(x < 125 && y < 125){
for(AnimatedSprite a:mSprites)
{
if(a.getID() == 1)
{
a.AdvanceToFrame(0);
touching = true;
System.out.println("Touching 1");
//touch_obj1 = true;
}
}
}
else if(x > getWidth()-125 && y > getHeight()-125)
{
for(AnimatedSprite a:mSprites)
{
if(a.getID() == 2)
{
a.AdvanceToFrame(1);
System.out.println("Touching 2");
touching = true;
//touch_obj2 = true;
}
}
}
else
{
touching = false;
}
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
System.out.println("Touch UP");
touching = false;
break;
default:
System.out.println("NOT Touching");
touching = false;
break;
}
}
您的问题似乎是您在
onTouchEvent
中处理触摸事件的方式。如果要处理触摸事件,需要从onTouchEvent
返回true。因此,如果您得到一个操作_DOWN
并从onTouchEvent
返回false,系统将不会向您发送更多相关的触摸事件,直到下一个操作_DOWN
事件
如果不知道您正在对触摸事件执行什么操作,我无法为您提供一个肯定适用于您的情况的解决方案,但是如果您想要接收除
操作_DOWN
之外的任何触摸事件,您需要从onTouchEvent
返回true。好的,我已经解决了这个问题,我必须做的就是这样
1) 我更改了函数,以便它可以返回
boolean public bool doTouch(MotionEvent event)
2) 当然,我在函数结束时返回true
3) 当我叫它的时候,我做了这个
public boolean onTouchEvent(MotionEvent event)
{
return doTouch(event);
}
能否显示调用
doTouch
方法的代码?具体地说,我想知道您是否从onTouchEvent()
调用返回true。我可以,但正如我所说的,正在检测到操作,但让我修改问题,以便向您显示代码抱歉,我花了这么长时间才回答,但尽管它听起来很有逻辑,就像我说的actiondown完美地工作只是ActionUp不起作用对他们来说不返回真的会很奇怪我猜,但也许我错了是的,正如我在回答中提到的,您将始终获得操作_DOWN
但您不会获得其他事件,除非您在操作_DOWN
事件的响应中从操作_DOWN
返回true。好的,谢谢您,因为这很有意义,我将它作为正确的答案
public boolean onTouchEvent(MotionEvent event)
{
return doTouch(event);
}