Как исключить метод onTouch при вызове onDoubleTapEvent (в виде сетки)?
Мне нужен сенсорный слушатель в представлении календаря сетки. Предполагается, что для получения данных от перетаскивания по календарю требуется метод onTouch, а для удаления записей - onDoubleTapEvent. Я также реализовал пользовательский класс MyGestureListener, который расширяет SimpleOnGestureListener для этого. Некоторые части кода можно увидеть ниже:
calendarGridView.setOnTouchListener(new MyGestureListener(getApplicationContext()) {
//Touch Listener on every gridcell
public boolean onTouch(View v, MotionEvent event) {
super.onTouch(v, event);
....
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
....
}
case MotionEvent.ACTION_UP : {
....
}
case MotionEvent.ACTION_CANCEL: {
....
}
}
//Save the data
return true;
}
public boolean onDoubleTapEvent(MotionEvent event) {
.... //delete the entry, save data
return true;
}
Класс слушателя пользовательских жестов:
public class MyGestureListener extends SimpleOnGestureListener implements OnTouchListener{
Context context;
GestureDetector gDetector;
public MyGestureListener(Context context) {
super();
if (gDetector == null) {
gDetector = new GestureDetector(context, this);
}
this.context = context;
}
public MyGestureListener(Context context, GestureDetector gDetector) {
if (gDetector == null) {
gDetector = new GestureDetector(context, this);
}
this.context = context;
this.gDetector = gDetector;
}
public boolean onTouch(View v, MotionEvent event) {
return gDetector.onTouchEvent(event);
}
public GestureDetector getDetector() {
return gDetector;
}
}
Проблема здесь заключается в том, что когда я дважды нажимаю на ячейку календаря, он вызывает onDoubleTapEvent, но также метод onTouch (с учетом ACTION_DOWN, ACTION_UP и снова ACTION_DOWN, ACTION_UP). Как я могу их разделить?