catch double click on textview android

后端 未结 4 971
孤独总比滥情好
孤独总比滥情好 2021-01-21 03:33

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(         


        
相关标签:
4条回答
  • 2021-01-21 03:36

    For SimpleGestureDetector, you need to override onDown() and return true to trigger double tap detector.

    Whether or not you use GestureDetector.OnGestureListener, it's best practice to implement an onDown() method that returns true. This is because all gestures begin with an onDown() message. If you return false from onDown(), as GestureDetector.SimpleOnGestureListener does by default, the system assumes that you want to ignore the rest of the gesture, and the other methods of GestureDetector.OnGestureListener never get called. This has the potential to cause unexpected problems in your app. The only time you should return false from onDown() is if you truly want to ignore an entire gesture.

    Source: http://developer.android.com/training/gestures/detector.html

    0 讨论(0)
  • 2021-01-21 03:39

    This is a good site for performing double click... I used it and worked doubleCLICK

    0 讨论(0)
  • 2021-01-21 03:43

    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;
            }
        });
    
    0 讨论(0)
  • 2021-01-21 03:54

    Instead of:

    GestureDetector.SimpleOnGestureListener()

    Try:

    GestureDetector.OnDoubleTapListener()

    0 讨论(0)
提交回复
热议问题