touchlisteners и текстовые представления - PullRequest
1 голос
/ 09 марта 2010

На самом деле я пытаюсь внедрить ontouchlistener в мое приложение для Android (1.5). поэтому я реализовал «ontouchlistener» в классе, а затем я поместил свой код в:

public boolean onTouchEvent (MotionEvent e){
 //code
}

Проблема в том, что, если я перетаскиваю (например, Spinner или EditTextView), этот метод не вызывается. Единственный способ решить эту проблему, который я выяснил, - это добавить ontouchlistener к каждому из этих представлений вручную:

((Spinner)(findViewById(R.id.spinner1))).setOnTouchListener(tl);
((Spinner)(findViewById(R.id.spinner2))).setOnTouchListener(tl);

(т. Е. Сенсорный прослушиватель) Так есть ли способ поймать событие касания до того, как оно попадет в каждое из этих представлений? заранее спасибо

Ripei

1 Ответ

0 голосов
/ 09 марта 2010

Что именно вы хотите сделать - хотите ли вы:

  • Обнаружение целых жестов в некоторых Activity.
  • Обнаружение касаний только для данного View

Если вы хотите первое:

Взгляните на этот пример: Обнаружение жестов Fling на макете сетки .

По сути, вы перенаправляете все зарегистрированные сенсорные события на GestureDetector. Он понимает, что именно представляет собой пользовательский ввод (одно касание, двойное касание, прокрутка и т. Д.) И вызывает соответствующий обратный вызов в SimpleOnGestureListener, который вы должны реализовать.

Если вы хотите последнее:

Вы можете либо:

  1. Переопределить представление onTouchEvent().
  2. Агрегат и перехват onTouchListener (если вы хотите получить прикосновение до того, как оно будет отправлено на него).

Если вы хотите реализовать onTouchListener, вы будете выполнять свою работу не в методе onTouchEvent(), а в методе интерфейса onTouch().

Надеюсь, это поможет.

...