Событие OnTouch, палец на экране, но не движется

1

Я хотел бы выполнить действие, когда пользователь отпустил палец на просмотр более 1 секунды.

С OnTouch я могу получить доступ к ACTION_UP, ACTION_DOWN и ACTION_MOVE.

Проблема заключается в том, что если пользователь имеет палец на экране и не двигает пальцем, ACTION_MOVE не запускается, и поэтому я не могу выполнить свое действие.

Я точно знаю, что я хотел бы выполнить свое действие после 1 секунды, но пока пользователь все еще держит палец на экране.

На самом деле мне нужно было бы почувствовать, что пользователь имеет палец на экране, даже если он не перемещает его.

Спасибо за вашу помощь.

  • 0
    Почему бы вам просто не прослушать ACTION_DOWN запустить таймер и делать все, что вы хотите делать после 1000 мс?
  • 0
    Итак, я запускаю таймер на ACTION_DOWN а затем, куда я должен поместить свой if (timer>1000) {Dotask;} .
Теги:
ontouchevent

2 ответа

2
Лучший ответ

Вы можете использовать класс TimerTask и запланировать задачу, которая будет запущена через определенное время.

Вот пример.

В случае, если пользователь поднял палец до 1000 мс, просто отмените задачу, запланированную на событие ACTION_UP.

1

Или вы можете использовать longclickListener :)

View myView = findViewById(R.id.myView);
wv.setOnLongClickListener(new OnLongClickListener() {

    public boolean onLongClick(View v) {
        //DO SOMETHING HERE
        return true;
    }
});
  • 0
    Похоже, лучший вариант, если он не хочет убедиться, что это одна секунда, не больше, не меньше
  • 0
    Спасибо за ваш ответ, но мне действительно нужно иметь дело с точным временем. Поэтому я думаю, что я пойду с TimerTask, как предложил Судхакер.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню