switch studio sirve radiogroup que poner personalizar para imagen hacer funcionar ejemplos diseño con como codigo botones boton android user-interface double-click

studio - Implementar doble clic para el botón en Android



personalizar botones android studio (5)

¿Cómo puedo implementar el doble clic para un botón en Android? ¿Debo usar OnDoubleTapListener?


Escribí esto para mostrar un mensaje de Toast con un doble clic en una aplicación de mapeo:

private long lastTouchTime = -1; @Override public boolean onTouchEvent(MotionEvent e, MapView mapView) { GeoPoint p = null; if (e.getAction() == MotionEvent.ACTION_DOWN) { long thisTime = System.currentTimeMillis(); if (thisTime - lastTouchTime < 250) { // Double click p = mapView.getProjection().fromPixels((int) e.getX(), (int) e.getY()); lastTouchTime = -1; } else { // too slow lastTouchTime = thisTime; } } if (p != null) { showClickedLocation(p);// Raise a Toast } return false; }


Este es probablemente un buen lugar para comenzar:

Android: ¿Cómo detectar el doble toque?

Recomiendo cambiar a una forma más nativa, como presionar prolongadamente (responder a una pregunta vinculada) o algo más creativo (usando multitáctil), a menos que esté inclinado a la forma predeterminada de hacer doble clic en Windows para hacer las cosas.

Sin embargo, puede que tenga una razón válida: hacer doble clic es, después de todo, más rápido que presionar prolongadamente.



int i = 0; btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub i++; Handler handler = new Handler(); Runnable r = new Runnable() { @Override public void run() { i = 0; } }; if (i == 1) { //Single click handler.postDelayed(r, 250); } else if (i == 2) { //Double click i = 0; ShowDailog(); } } });


private long lastTouchTime = 0; private long currentTouchTime = 0;

..

@Override public void onClick(View view) { lastTouchTime = currentTouchTime; currentTouchTime = System.currentTimeMillis(); if (currentTouchTime - lastTouchTime < 250) { Log.d("Duble","Click"); lastTouchTime = 0; currentTouchTime = 0; } }