我正在使用Blackberry Touch事件,我需要处理TouchEvent.MOVE
,TouchEvent.UP
和TouchEvent.DOWN
来移动图片轮播和TouchEvent.CLICK
以生成一些具体行动。
我的问题是多次调用touchEvent()
方法。我怎么能阻止这个?因为这种行为搞得一团糟。
例如:当我只想捕获TouchEvent.CLICK
事件时,UP-DOWN-MOVE-CLICK将在下一个事件后被触发。
我的代码执行以下操作:
protected boolean touchEvent(TouchEvent message) {
if (message.getEvent() == TouchEvent.CLICK) {
//CHANGE THE CONTENT OF A FIELD
return true;
} else if ((message.getEvent() == TouchEvent.MOVE)
|| (message.getEvent() == TouchEvent.UP)
|| (message.getEvent() == TouchEvent.DOWN)) {
//DELETE THE FIELD
//MOVE A CAROUSEL OF IMAGES
} else {
return false;
}
}
public void moverTouch(int dx) {
//ADD THE FIELD PREVIOUSLY DELETED
}
正如您所看到的,当捕获CLICK
事件时,我需要更改字段的内容,但需要更改MOVE
或UP
或DOWN
事件如果被捕获,我需要从他的经理中删除Field
,使用旋转木马的图像进行处理,然后重新添加以前删除的字段。
旋转木马移动部件工作正常但是当我尝试捕获JUST CLICK
事件时,其他事件也被触发,但是moverTouch(
)函数没有被触发,因为那里在图像的旋转木马上没有实际的移动,我最终得到了一个删除的字段,我需要更新其内容。
答案 0 :(得分:3)
一目了然:
我认为您需要区分触摸手势(我相信您正在“倾听”类似滑动手势以滚动图库图像)与“正常”触摸事件(特别是您需要处理TouchEvent.CLICK
以应用对点击的图像进行“一些特定操作”。
要确定TouchEvent
代表手势是否有TouchEvent.GESTURE
常量。然后,通过调用TouchGesture
可以知道它代表的确切TouchEvent.getGesture()
。
可以查看某些触摸手势示例代码here。