Pregunta

En realidad, yo estoy tratando de implementar un ontouchlistener en mi Android (1.5) de la aplicación. Por lo tanto, he implementado el "ontouchlistener" en la clase, y luego puse mi código en el:

public boolean onTouchEvent (MotionEvent e){
 //code
}

El problema es que si estoy arrastrando más de una (por ejemplo) o Spinner EditTextView que este método no se llama. La única manera de resolver esto lo que me di cuenta es añadir una ontouchlistener a cada una de estas vistas manualmente:

((Spinner)(findViewById(R.id.spinner1))).setOnTouchListener(tl);
((Spinner)(findViewById(R.id.spinner2))).setOnTouchListener(tl);

(tl es el ontouchlistener) Así que no hay una manera de capturar el evento táctil antes de que llegue a cada uno de esos puntos de vista? gracias de antemano

Ripei

¿Fue útil?

Solución

¿Qué es exactamente lo que quiere hacer - ¿desea:

  • Detección de gestos enteras en algunos Activity.
  • Detectar toques sólo para un determinado View

Si desea que el primero:

Tome un vistazo a este ejemplo: detección Fling gesto en diseño de cuadrícula .

Básicamente, redirigir todos los eventos táctiles registrados a un GestureDetector. Se entiende exactamente lo que es la entrada del usuario (solo toque, doble toque, desplazamiento, etc.) y llama a la devolución de llamada correspondiente en una SimpleOnGestureListener, que se deben implementar.

Si desea que la última:

Puede:

  1. Anular onTouchEvent() de la vista.
  2. Implementar y onTouchListener gancho (si se desea obtener el tacto antes de que sea enviado a ella).

Si desea implementar onTouchListener, que va a hacer su trabajo no en el método onTouchEvent(), pero en el método onTouch() de la interfaz.

Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top