Сначала ваш метод onTouchEvent является неправильным и вызовет 2 вызова onTouchEvent объектом gestScanner.
Вам нужно изменить это:
@Override
public boolean onTouchEvent(MotionEvent me){
Log.d(null,"Touch");
if (gestureScanner.onTouchEvent(me))
return true;
else
return super.onTouchEvent(event); // or false (it's what you whant).
}
У вас также есть эта строка дважды:
gestureScanner = new GestureDetector(this);
Затем попробуйте изменить свой метод onFling следующим образом:
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {
try{
if(Math.abs(e1.getY()-e2.getY()) > 250)
return false;
if(e1.getX() - e2.getX() > 120 && Math.abs(velocityX) > 200){
Log.d("Fling", "Move Next");
//do something...
}
else if(e2.getX() - e1.getX() > 120 && Math.abs(velocityX) > 200){
Log.d("Fling", "Move Previous");
//do something...
}
return false;
}
catch(Exception e){
return false;
}
}