2013-05-29 4 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.

Смежные вопросы