Question

En fait, je suis en train de mettre en œuvre un ontouchlistener dans mon application Android (1.5). donc je mis à exécution les « ontouchlistener » dans la classe, puis je mets mon code dans le:

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

Le problème est que si je traîne sur une (par exemple) Spinner ou EditTextView que cette méthode est pas appelée. La seule façon de résoudre ce que je pensais sortir est d'ajouter un ontouchlistener à chacun des vues manuellement:

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

(tl est le ontouchlistener) Alors, est-il pas un moyen d'attraper l'événement touche avant qu'il ne soit à chacun de ces points de vue? merci à l'avance

Ripei

Était-ce utile?

La solution

Que voulez-vous voulez faire - voulez-vous:

  • détecter des gestes entiers dans certains Activity.
  • Detect touche seulement pour une donnée View

Si vous voulez que l'ancien:

Jetez un oeil à cet exemple: détection de geste de rencontres sur le plan de la grille .

En fait, vous redirigez tous les événements tactiles enregistrés à un GestureDetector. Il comprend ce qui est exactement l'entrée d'utilisateur (une seule pression, appuyez deux fois, défilement, etc.) et appelle le rappel correspondant dans un SimpleOnGestureListener, que vous devez mettre en œuvre.

Si vous voulez que celui-ci:

Vous pouvez:

  1. Remplacer la onTouchEvent() de la vue.
  2. Mettre en œuvre et crochet onTouchListener (si vous voulez obtenir le toucher avant de le lui est envoyé).

Si vous souhaitez implémenter onTouchListener, vous allez faire votre travail pas dans la méthode onTouchEvent(), mais dans la méthode de onTouch() de l'interface.

L'espoir qui aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top