Обработчик двойного нажатия(через onTouch())

308
24 июля 2017, 13:21

В onTouch() нужно задать действие при одном нажатии(что сделать легко) и при двух быстрых нажатиях(желательно, чтобы можно было задать максимальный интервал времени между касаниями). Единственное что лезет в голову, это вначале действия в случае одного нажатия поставить sleep на время, и если было второе касание выполнить соответствующий код. Sleep() работает (удивительно), но по ощущениям он работает так, как будто при касании экрана не срабатывает новый поток обработчика, а есть один поток обработчик который линейно обрабатывает нажатия. Как сделать, чтобы обработчик ждал некоторое время следующее касание?

Answer 1

попробуйте такой вариант

final GestureDetector gestureDetector = new GestureDetector(context,new GestureDetector.SimpleOnGestureListener() {
    public boolean onDoubleTap(MotionEvent e) {
        Log.e("onDoubleTap", "Open new activty here");
        return true;
    }
});
TextView tv = (TextView) findViewById(R.id.editTextID);
tv.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        return gestureDetector.onTouchEvent(event);
    }
});
READ ALSO
Не отображаются картинки на странице JSP

Не отображаются картинки на странице JSP

Добрый день, есть страничка testjsp, в ней есть код html получающий картинку стандартным тегом:

258
Захват входящего номера

Захват входящего номера

Есть ли возможность на Android 40

246
Java - выдаёт ошибку ХЗ HELP!

Java - выдаёт ошибку ХЗ HELP!

В чём проблема?? Пожалуйста помогите разобраться

276