1

我正在使用 Blackberry Touch 事件,我需要处理TouchEvent.MOVE,TouchEvent.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事件被捕获时,我需要更改字段的内容,但是当MOVEor UPorDOWN事件被捕获时,我需要Field从他的经理那里删除它,对图像轮播做一些处理,然后重新添加之前删除的字段。

轮播移动部分工作正常,但是当我尝试捕获CLICK事件时,其他事件也被触发,但是moverTouch() 函数没有被触发,因为图像的轮播上没有实际移动,我结束了有一个已删除的字段,我需要更新其内容。

4

1 回答 1

3

乍看上去:

我认为您需要将触摸手势(我相信您正在“聆听”诸如滚动图库图像的滑动手势之类的东西)与“正常”触摸事件(特别是您需要处理TouchEvent.CLICK以将“某些特定动作”应用于单击图片)。

要确定 是否TouchEvent代表手势,有一个TouchEvent.GESTURE常数。TouchGesture然后可以通过调用知道它到底代表什么TouchEvent.getGesture()

触摸手势的一些示例代码可以在这里查看。

于 2013-05-29T17:33:04.173 回答