¿Cómo escuchar doubletap en una vista en Android?

Quiero detectar un doubletap en una vista, como por ejemplo un button , y luego saber qué vista era. He visto una pregunta similar, pero la pregunta que dicen que es un duplicado no parece responder a mi pregunta.

Todo lo que puedo encontrar es agregar un GestureDetector a la actividad y agregarle un OnDoubleTapListener . Pero eso solo se activa si hago clic en el fondo / diseño de mi pantalla. No se activa cuando pulso dos veces un button .

Este es el código que tengo dentro de mi onCreate :

  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; } }); 

Puede lograr esto simplemente usando estas pocas líneas de códigos. Es así de simple.

 final GestureDetector gd = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener(){ //here is the method for double tap @Override public boolean onDoubleTap(MotionEvent e) { //your action here for double tap eg //Log.d("OnDoubleTapListener", "onDoubleTap"); return true; } @Override public void onLongPress(MotionEvent e) { super.onLongPress(e); } @Override public boolean onDoubleTapEvent(MotionEvent e) { return true; } @Override public boolean onDown(MotionEvent e) { return true; } }); //here yourView is the View on which you want to set the double tap action yourView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return gd.onTouchEvent(event); } }); 

Coloque este fragmento de código en la actividad o adaptador en el que desea establecer la acción de doble toque en su vista.