Событие OnLongPress работает только в первый раз
Я разрабатываю игру, в которой я хочу выполнять определенные операции, когда пользователь нажимает на экран одним нажатием, и некоторые другие операции, когда пользователь долго нажимает на экран. Для этого я создал класс детектора жестов и добавил к ним события.
Класс Surface View
public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback {
public MySurfaceView(Context context, AttributeSet attrs) {
gestureDetector = new GestureDetector(context, new GestureListener(this));
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d(TAG,"Inside Touch Event");
float lasttouched_X, lasttouched_Y;
Card localcard;
int index=-1;
Log.d(TAG,"Inside OnTouch event");
gestureDetector.onTouchEvent(event);
return true;
}
}
Класс детектора жестов
class GestureListener extends GestureDetector.SimpleOnGestureListener{
private static final String TAG = GestureListener.class.getSimpleName(); // To get name of class in Logging
MySurfaceView mySurfaceView;
public GestureListener(MySurfaceView paramMySurfaceView)
{
mySurfaceView=paramMySurfaceView;
}
@Override
public void onLongPress(MotionEvent e) {
Log.d(TAG,"Inside Long Pressed event");
mySurfaceView.addTouchedCardToLongTouched(e);
}
@Override
public boolean onDown(MotionEvent e) {
// don't return false here or else none of the other
// gestures will work
return false;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
mySurfaceView.swapSingleTouchCard(e);
return false;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
Log.d(TAG,"Inside On Double Tap event");
return false;
}
}
Событие OnLongPress работает только в первый раз, после этого всякий раз, когда я долго нажимаю на сенсорный экран, оно запускает событие SingleTapConfirmed. Я не могу понять, почему это происходит.
Пожалуйста, дайте мне знать, почему это происходит. Заранее спасибо.