Domanda

In realtà sto cercando di implementare un ontouchlistener nel mio Android (1.5) dell'applicazione. quindi ho implementato il "ontouchlistener" in classe, e poi ho messo il mio codice in:

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

Il problema è, che se sto trascinando su una (per esempio) o Spinner EditTextView di questo metodo non viene chiamato. L'unico modo per risolvere questo che ho capito è quello di aggiungere un ontouchlistener a ciascuna di queste vedute manualmente:

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

(TL è l'ontouchlistener) Quindi non c'è un modo per catturare l'evento di tocco prima che arrivi a ciascuno di questi punti di vista? grazie in anticipo

Ripei

È stato utile?

Soluzione

Che cosa vuoi fare - vuoi:

  • Detect gesti interi in alcuni Activity.
  • Detect tocchi solo per un determinato View

Se si desidera che l'ex:

Date un'occhiata a questo esempio: rilevamento scagliare gesto la layout griglia .

In sostanza, si reindirizzare tutti gli eventi registrati tocco ad un GestureDetector. Si capisce che cosa è esattamente l'input dell'utente (singolo tocco, doppio tocco, scorrimento, etc.) e richiama il callback corrispondente un SimpleOnGestureListener, che è necessario implementare.

Se si desidera che il secondo:

È possibile:

  1. Override del View onTouchEvent().
  2. Implementare e gancio onTouchListener (se si desidera ottenere il tocco prima di essere inviato ad esso).

Se si desidera implementare onTouchListener, vi ritroverete a fare il vostro lavoro non nel metodo onTouchEvent(), ma nel metodo onTouch() dell'interfaccia.

La speranza che aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top