2010-08-19 6 views
0

J'ai une classe personnalisée que j'ai écrite qui étend ImageView (pour Android Java). Je veux ajouter un ClickListener à chaque instance que je crée de la classe qui fera la même chose (juste animer le ImageView.)setOnClickListener à tous les ImageViews étendus - Java

J'ai essayé quelques choses différentes en vain. Le code ci-dessous est ce que je veux accomplir mais il est appliqué à un objet de la classe.

MyCustomImageView fd = new MyCustomImageView(this); 
fd.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       Animater(fd); 
      } 
     }); 

instancié J'ai essayé d'utiliser « implémente onClickListener » sur la déclaration de classe et une méthode public void onClick() dans la classe, et cela ne fonctionne pas pour moi J'ai également essayé d'utiliser l'extrait de code ci-dessus avec un "this" au lieu de "fd" et cela ne fonctionnait pas non plus

Je suis relativement nouveau à Java et c'est hors de ma portée. Toute aide que vous pouvez fournir est grandement appréciée.

Répondre

1

C'est vraiment facile. Vous devez le faire dans votre classe personnalisée:

public class MyCustomImageView extends ImageView{ 

    public MyCustomImageView(Context context){ 
     super(context); 
     setOnClickListener(theCommonListener); 
    } 

    private OnClickListener theCommonListener = new OnClickListener(){ 
     public void onClick(View v) { 
      // do what you want here 
     } 
    } 
} 

Il existe d'autres façons de le faire, mais c'est un est vraiment facile à mettre en œuvre et à comprendre. Chaque instance de MyCustomImageView aura le même écouteur d'événement (sauf si vous le remplacez de l'extérieur).

+0

hmm ... J'ai ajouté cela avec une autre méthode que j'appelle quand l'image est cliquée, et elle n'atteint jamais l'autre méthode. Eclipse me dit aussi que theCommonListener n'est jamais lu localement ... des idées? – Kyle

+0

oups ma mauvaise. J'ai oublié d'enlever les auditeurs des objets que j'ai créés ... c'est parfait! Merci. – Kyle

Questions connexes