catch double click on textview android

android, java

Solution

Try following steps.

Step 1

Write following code in your activity.

// initialize the Gesture Detector
gd = new GestureDetector(this,new OnGestureListener() {
    @Override
    public boolean onSingleTapUp(MotionEvent e) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public void onShowPress(MotionEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
            float distanceY) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public void onLongPress(MotionEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean onDown(MotionEvent e) {
        // TODO Auto-generated method stub
        return false;
    }
});

// set the on Double tap listener
gd.setOnDoubleTapListener(new OnDoubleTapListener() {
    @Override
    public boolean onDoubleTap(MotionEvent e) {
        Toast.makeText(SplashActivity.this,"Double Tap",Toast.LENGTH_LONG).show();
    return false;
    }

    @Override
    public boolean onDoubleTapEvent(MotionEvent e) {
        // if the second tap hadn't been released and it's being moved

        return false;
    }

    @Override
    public boolean onSingleTapConfirmed(MotionEvent e) {
        // TODO Auto-generated method stub
        return false;
    }

});

Step 2

Write following code for activity. Here `gd` will be `GestureDetector` object.

txt.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            gd.onTouchEvent(event);
            return false;
        }
    });

Problem

i want to catch double click on textview for that i have used below code but it still not working :( ``` TextView txtOne; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtOne = (TextView) findViewById(R.id.txtOne); txtOne.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { System.out.println("DRAG"); return gestureDetector.onTouchEvent(event); } }); } final GestureDetector gestureDetector = new GestureDetector( new GestureDetector.SimpleOnGestureListener() { @Override public boolean onDoubleTap(MotionEvent e) { System.out.println("Double Tap"); return super.onDoubleTap(e); } @Override public boolean onSingleTapUp(MotionEvent e) { System.out.println("One Click"); return super.onSingleTapUp(e); } }); ``` only drag is calling but not "Double Tap" and "One Click" never called

Original source