2016-05-26 2 views
0

私のコードGestureDetectorCompactは機能しませんか?

public class TestActivity extends AppCompatActivity implements GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_test); 

     GestureDetectorCompat gestureDetectorCompat=new GestureDetectorCompat(this,this); 
     gestureDetectorCompat.setOnDoubleTapListener(this); 
    } 

    @Override 
    public boolean onDown(MotionEvent e) { 
     return false; 
    } 

    @Override 
    public void onShowPress(MotionEvent e) { 

    } 

    @Override 
    public boolean onSingleTapUp(MotionEvent e) { 
     return false; 
    } 

    @Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 
     return false; 
    } 

    @Override 
    public void onLongPress(MotionEvent e) { 

    } 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
     return false; 
    } 

    @Override 
    public boolean onSingleTapConfirmed(MotionEvent e) { 
     return false; 
    } 

    @Override 
    public boolean onDoubleTap(MotionEvent e) { 
     return false; 
    } 

    @Override 
    public boolean onDoubleTapEvent(MotionEvent e) { 
     return false; 
    } 
} 

私はすべての方法をデバッグするんだけど、どれも取得者と呼ばれます。 私は間違っていますか?

+0

私のケースでは、 'onTouchEvent(....) –

答えて

2

GestureDetectorCompatは自動呼び出しされません。 ActivityonTouchEvent(MotionEvent event)を無効にして、ジェスチャ検出器にイベントを渡す必要があります。例えば。

public boolean onTouchEvent(MotionEvent event) { 
    return gestureDetectorCompat.onTouchEvent(event) 
    } 

hereというマニュアルがあります。戻り値の意味については、こちらを参照してください。

1

コードに以下を追加してください。それはhereと記載されています。

@Override 
    public boolean onTouchEvent(MotionEvent event){ 
     this.mDetector.onTouchEvent(event); 
     // Be sure to call the superclass implementation 
     return super.onTouchEvent(event); 
    } 
関連する問題