Android: два разных события для одного нажатия и длительного нажатия / двойного нажатия?

Я пытаюсь разработать функцию, в которой одним нажатием элемента вызывается «Намерение» перейти к другому действию, а долгое нажатие ИЛИ двойным нажатием на элемент делает что-то еще, например, позволяет редактировать текст.

Пока что я могу добиться того, чтобы оба происходили одновременно, но не по отдельности. У кого-нибудь есть какие-либо идеи?

public boolean onTouchEvent(MotionEvent e) {
    return gestureScanner.onTouchEvent(e);
}


public boolean onSingleTapConfirmed(MotionEvent e) { 
    Intent i = new Intent(getContext(), SecondClass.class);
    getContext().startActivity(i);

    return true; 
}

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; }
public void onLongPress(MotionEvent e) {
    Toast.makeText(getContext(), "Edit feature here", Toast.LENGTH_SHORT).show();

}
 RajeshVijayakumar10 нояб. 2012 г., 18:27
PostSomecode, так что я могу исправить это

Ответы на вопрос(2)

Решение Вопроса

все, что мне нужно было сделать, это изменить возвращаемое значение сfalse вtrue вonDown() обработчик.

public boolean onTouchEvent(MotionEvent e) {
    return gestureScanner.onTouchEvent(e);
}

public boolean onSingleTapConfirmed(MotionEvent e) { 

    Intent i = new Intent(getContext(), SecondClass.class);
    getContext().startActivity(i);

    return true; 
}

public boolean onDown(MotionEvent e) { return true; }


public void onLongPress(MotionEvent e) {
    Toast.makeText(getContext(), "Edit Feature", Toast.LENGTH_SHORT).show();

}
 Ragunath Jawahar21 дек. 2015 г., 13:37
У меня тоже сработало.

SimpleOnGestureListener есть методы, которые вы хотите с,onSingleTapConfirmed()onLongPress(), а также .onDoubleTap()

 Gideon Pyzer10 нояб. 2012 г., 18:49
Я добавил код.
 Sam10 нояб. 2012 г., 18:54
К какому типу просмотра вы добавляете это? Похоже, вы хотите TextView, который может стать EditText по длинному щелчку.
 Gideon Pyzer10 нояб. 2012 г., 18:37
Я использовал GestureDetector. Если я помещу свое намерение в метод onSingleTapConfirmed (), это неничего не делай. Он просто заставляет onLongPress () работать одним нажатием:

Ваш ответ на вопрос