Android: как объединить возможности Activity.onTouchEvent () и View.setOnLongClickListener () - PullRequest
0 голосов
/ 02 ноября 2011

В Android я пытаюсь зафиксировать касания пользователя, а также длительные касания пользователя.У меня есть Activity, и в ней я переопределяю метод onTouchEvent() для обработки множества касаний экрана.

Я пытаюсь включить «Длинные нажатия» в свой список вариантов пользовательского интерфейса.

Я не могу найти Activity.onLongTouchEvent() для переопределения.

У моего приложения также есть SurfaceView, и я вижу, что могу сделать это:

sv.setOnLongClickListener (new View.OnLongClickListener()
{
    @Override
    public boolean onLongClick (View v)
    {
        SendAToast();
        return false;
    }
});

Когда я реализую этот код, он работает точно так же, как и должен.

Однако теперь мой onTouchEvent()код никогда не вызывается, даже если я не касаюсь экрана достаточно долго, чтобы он стал «долгим нажатием».

Кто-нибудь знает, как заставить эти два бита кода работать вместе?

Редактировать:

После того, как я опубликовал это, сотрудник показал мне интерфейс "OnGestureListener".Вот пример:

http://www.ceveni.com/2009/08/android-gestures-detection-sample-code.html

Я использую интерфейс для захвата длинных нажатий, и он даже предоставляет координаты экрана для работы (что не имеет OnLongClickListener).Таким образом, это похоже на дело.

Почему эта функция не входит в действие автоматически?Это, конечно, кажется мне основной функциональностью.

1 Ответ

1 голос
/ 02 ноября 2011

Я бы переместил сенсорный материал в onTouchEvent представления вместо Activity.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...