Aller au contenu

onFocusChange sur une View


Fluckysan

Recommended Posts

Bonjour :)

Je ne parviens pô à mettre un onFocusChange sur une View custom

J'ai fait court en implémentant OnFocusChangeListener dans ma View :

public class ButtonImgLabel extends View implements OnFocusChangeListener{

Puis j'ai set mon listener :

this.setOnFocusChangeListener(this);

Et enfin je définie le onFocusChange :

    public void onFocusChange(View v, boolean hasFocus) {
       Log.d(DEBUG_TAG, "Focus change");

       if (hasFocus == true)
       {
           Log.d(DEBUG_TAG, "BgColor change");
           this.setBackgroundColor(Color.rgb(255, 165, 0));
       }
       else
       {
           Log.d(DEBUG_TAG, "BgColor back");
           this.setBackgroundColor(Color.WHITE);
       }
   }

Hors le onFocusChange n'est jamais appelé :o

Comment faut-il faire ?

Modifié par Fluckysan
Lien vers le commentaire
Partager sur d’autres sites

essaye plutot ça que d'implémenter le listener dans ta view:

this.setOnFocusChangeListener(new OnFocusChangeListener(){

public void onFocusChange(View v, boolean hasFocus) {

Log.d(DEBUG_TAG, "Focus change");

if (hasFocus == true)

{

Log.d(DEBUG_TAG, "BgColor change");

v.setBackgroundColor(Color.rgb(255, 165, 0));

}

else

{

Log.d(DEBUG_TAG, "BgColor back");

v.setBackgroundColor(Color.WHITE);

}

}

});

Modifié par popolbx
Lien vers le commentaire
Partager sur d’autres sites

aaah mais .... c quoi cette view ? ButtonImgLabel c'est une view à toi ....

mais quand elle a le focus...c'est elle qui l'a ou une des views qu'elle contient ?

parce que du coup il faut peut etre mettre le listener sur cette view là... sinon j ai pas d'autres idées.

Lien vers le commentaire
Partager sur d’autres sites

Vi c'est une View que j'ai crée :o

En fait j'ai créer cette View afin de faire des buttons dans une GridView (ButtonImgLabel est donc un "button" dans une GridView)

C'est pour cela que j'ai besoin du onFocusChange

J'ai par ailleurs un onClick qui fonctionne bien pourtant

Peut-être que le focus ne traverse pô la GridView ?

Lien vers le commentaire
Partager sur d’autres sites

Vi c'est une View que j'ai crée :o

En fait j'ai créer cette View afin de faire des buttons dans une GridView (ButtonImgLabel est donc un "button" dans une GridView)

C'est pour cela que j'ai besoin du onFocusChange

J'ai par ailleurs un onClick qui fonctionne bien pourtant

Peut-être que le focus ne traverse pô la GridView ?

Essaie de faire un dispatch de l'event

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...