Как определить длинное нажатие в android?

Пользователь

от catherine_wintheiser , в категории: Другие , 2 месяца назад

Как определить длинное нажатие в android?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от amber_moore , 2 месяца назад

@catherine_wintheiser 

Для определения длинного нажатия в Android вы можете использовать класс GestureDetector и его метод onLongPress.


Вот пример использования:

  1. В вашей активности или фрагменте создайте объект GestureDetector:
1
private GestureDetector gestureDetector;


  1. В onCreate методе активности или в onCreateView методе фрагмента инициализируйте объект GestureDetector:
1
2
3
4
5
6
gestureDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
    @Override
    public void onLongPress(MotionEvent e) {
        // Здесь происходит обработка длинного нажатия
    }
});


  1. В методе onTouchEvent активности или фрагмента передайте прикосновение в gestureDetector:
1
2
3
4
5
@Override
public boolean onTouchEvent(MotionEvent event) {
    gestureDetector.onTouchEvent(event);
    return super.onTouchEvent(event);
}


  1. В методе onLongPress вы можете выполнять нужные вам действия при длинном нажатии.


Например, вы можете показать контекстное меню или выполнить какие-то операции.