2013-12-11 31 views
1

我想在我的Android應用程序中捕捉LongPress-Gesture,但this.gestureDetector.onTouchEvent(event)返回始終爲false。我在LogCat中得到「Longpress detected」,但onTouchEvent總是返回false - 任何想法在這裏有什麼錯誤?LongPress-GestureDetector檢測不起作用

final GestureDetector gestureDetector = new GestureDetector(this.getContext(), 
      new GestureDetector.SimpleOnGestureListener() { 
       @Override 
       public void onLongPress(MotionEvent event) { 
        Log.e(TAG, "Longpress detected"); 
       } 
      }); 

@Override 
public boolean onTouchEvent(MotionEvent event) { 

    boolean test = this.gestureDetector.onTouchEvent(event); 
    Log.v(TAG, Boolean.toString(test)); // test is _always_ false 
    if (test) { 
     // Do something 
     return test; 
    } 
    return super.onTouchEvent(event); 
} 

回答

0

因爲onLongPress沒有返回值,所以它被定義爲void。

public void onLongPress(MotionEvent event) { 
        Log.e(TAG, "Longpress detected"); 
       } 
+1

是的。在框架中,一些手勢檢測器方法返回一個bool值(這對我有意義),有些則不然。尤其是你必須調用onTouchEvent()才能使整個事情發揮作用 - 而不會獲得可靠的bool值。 – basti