2013-05-29 2 views
1

Я работаю с Blackberry сенсорным Event и мне нужно обработать TouchEvent.MOVE, TouchEvent.UP и TouchEvent.DOWN двигаться карусель изображений и TouchEvent.CLICK генерировать некоторые конкретные действия.касания событий Blackberry Срабатывает Несколько раз

Моя проблема в том, что метод 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 от своего менеджера, сделать некоторые работы с карусели изображений, а затем снова добавить ранее удаленное поле.

Карусели движущаяся часть работает отлично, но когда я пытаюсь захватить только CLICK событие, а другие, которые инициированы, а также, но функция moverTouch() не получает срабатывает, потому что нет никакого фактического движения на карусели изображений, я получаю удаленное поле, которое необходимо обновить его содержимое.

+1

На всех ежевиках, кроме оригинальной бури 9500, CLICK и DOWN являются синонимами и всегда встречаются вместе. Аналогичным образом, UNCLICK и UP всегда встречаются вместе. Вы должны просто игнорировать события UP и DOWN, так как 9500 устройств полностью вымерли. – adwiv

ответ

3

На первый взгляд:

Я думаю, что вам нужно различать жесты (я думаю, что вы «слушает» что-то вроде салфетки жест для прокрутки галереи изображений) от «нормального» потрогать события (в частности, вам нужно обработать TouchEvent.CLICK, чтобы применить «определенное действие» к щелканному изображению).

Для определения того, является ли TouchEvent представляет собой постоянный ток TouchEvent.GESTURE. Тогда можно узнать, что именно представляет TouchGesture, вызывая TouchEvent.getGesture().

Пример кода для сенсорных жестов можно посмотреть here.