2012-11-23 9 views
27

Ich möchte eine doubletap auf einer Ansicht, wie zum Beispiel eine button erkennen, und dann wissen, welche Ansicht es war. Ich habe gesehen this similar question aber die Frage, sie sagen, es ist ein Duplikat davon scheint meine Frage nicht zu beantworten.Wie zu Doubletap auf einer Ansicht in Android zu hören?

Alles, was ich kann find ist ein GestureDetector zu der Aktivität hinzufügen, und fügen Sie eine OnDoubleTapListener zu ihm hinzu. Das wird aber nur ausgelöst, wenn ich auf den Hintergrund/das Layout meines Bildschirms tippe. Es ist nicht ausgelöst, wenn ich (Doppel) tippen Sie auf button.

Dies ist der Code, den ich in meinem onCreate haben:

gd = new GestureDetector(this, this); 


    gd.setOnDoubleTapListener(new OnDoubleTapListener() 
    { 
     @Override 
     public boolean onDoubleTap(MotionEvent e) 
     { 
      Log.d("OnDoubleTapListener", "onDoubleTap"); 
      return false; 
     } 

     @Override 
     public boolean onDoubleTapEvent(MotionEvent e) 
     { 
      Log.d("OnDoubleTapListener", "onDoubleTapEvent"); 
      //if the second tap hadn't been released and it's being moved 
      if(e.getAction() == MotionEvent.ACTION_MOVE) 
      { 

      } 
      else if(e.getAction() == MotionEvent.ACTION_UP)//user released the screen 
      { 

      } 
      return false; 
     } 

     @Override 
     public boolean onSingleTapConfirmed(MotionEvent e) 
     { 
      Log.d("OnDoubleTapListener", "onSingleTapConfirmed"); 
      return false; 
     } 
    }); 
+0

Perfect Code auf dieser Methode Griff auf einmal tippen oder tippen Sie doppelt :) –

Antwort

7

Sie dies nur mit diesen wenigen Zeilen Code erreichen können. So einfach ist das.

Setzen Sie dieses Codeelement auf die Aktivität oder den Adapter, an dem Sie die Doppeltippaktion für Ihre Ansicht festlegen möchten.

Prost!

Verwandte Themen