触摸事件黑莓触发多次

时间:2013-05-29 16:05:53

标签: blackberry touch-event

我正在使用Blackberry Touch事件,我需要处理TouchEvent.MOVETouchEvent.UPTouchEvent.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事件时,我需要更改字段的内容,但需要更改MOVEUPDOWN事件如果被捕获,我需要从他的经理中删除Field,使用旋转木马的图像进行处理,然后重新添加以前删除的字段。

旋转木马移动部件工作正常但是当我尝试捕获JUST CLICK事件时,其他事件也被触发,但是moverTouch()函数没有被触发,因为那里在图像的旋转木马上没有实际的移动,我最终得到了一个删除的字段,我需要更新其内容。

1 个答案:

答案 0 :(得分:3)

一目了然:

我认为您需要区分触摸手势(我相信您正在“倾听”类似滑动手势以滚动图库图像)与“正常”触摸事件(特别是您需要处理TouchEvent.CLICK以应用对点击的图像进行“一些特定操作”。

要确定TouchEvent代表手势是否有TouchEvent.GESTURE常量。然后,通过调用TouchGesture可以知道它代表的确切TouchEvent.getGesture()

可以查看某些触摸手势示例代码here