2012-06-03 2 views
1

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

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

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

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

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

Благодарим за помощь.

+0

Почему вы не просто слушать 'ACTION_DOWN' и запустить таймер, и делать все, что вы хотите сделать после 1000ms? –

+0

Итак, я запускаю таймер на 'ACTION_DOWN', но тогда куда я должен поместить мой' if (timer> 1000) {Dotask;} '. – Jecimi

ответ

2

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

Here is an Example.

В случае, если пользователь поднял палец, прежде чем 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, как предложил Судхакер. – Jecimi

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