2013-06-22 2 views
0

J'ai 10 activités dans lesquelles je veux détecter des gestes. J'ai donc créé une classe qui implémente OnGestureListener. Cette classe s'étend également GestureDetector pour onTouchEvent(). Pour connecter toutes les activités à cette classe, j'instancie cette classe d'écoute gestuelle. Le problème que je suis confronté est que je ne peux pas passer le contexte (passe par d'autres activités à cette classe) et this à super classe. voici le code:Connexion des activités à GestureListener

public class GestureReader extends GestureDetector implements OnGestureListener{ 

     public GestureReader(Context con) 
    { 
    super(con,this); // error here 

    contxt= con; 
    gestures = new GestureDetector(con,this); 
    } 

    @Override 
public boolean onTouchEvent(MotionEvent me) { 
    return gestures.onTouchEvent(me); 
} 

    ..... 
} 

Cordialement

Répondre

1

Peut-être la solution la plus propre serait d'instancier une nouvelle GestureDetector/GestureReader pour chaque activité.

Selon doc le GestureDetector serait également heureux avec le contexte de la Application afin que vous puissiez récupérer le Application d'un de vos activités pour l'alimenter au détecteur

+0

L'autre méthode que j'ai essayée est, je n'étend pas GestureDetector dans la classe mentionnée ci-dessus et ai créé une autre classe qui étend GestureDetector, j'ai outrepassé OnTouchEvent() dans cette classe. J'instancie cette classe qui étend GestureDetector, dans d'autres activités mais il semble que l'onTouchEvent n'écoute pas les gestes. – user2498079

+0

@ user2498079 Peut-être que je vous comprends mal, mais il n'est normalement pas nécessaire de surcharger 'onTouchEvent()' du 'GestureDetector' mais de l'appeler' onTouchEvent() 'd'un' View' où vous l'avez outrepassé. Le détecteur traite alors les événements et appelle à son tour le 'OnGestureListener' –

0

vous pouvez créer une activité de base qui gère les gestes et tous les vos 10 Activités étendent cette base Activité

Questions connexes