Aller au contenu

OnItemSelected avec plusieurs Spinner


theo744

Recommended Posts

Bonjour à tous,

j'ai un petit soucis avec les spinner...

Voila mon problème, j'ai une application avec deux spinners (spinner et spinner2), j'aimerais pouvoir connaître quels items sont cochés dans chaque spinner, mais comment différencier les deux spinner dans la méthode OnItemSelected ?

Je m'explique, j'appelle OnItemSelected pour chaque spinner :

spinner.setOnItemSelectedListener(this);

spinner2.setOnItemSelectedListener(this);

Si un certain élément est sélectionné dans un Spinner, je fais quelque chose, si un certain élément est sélectionné dans le deuxieme spinner, je fais autre chose..

J'espère que je suis clair (j'en ai pas l'impression).

Si quelqu'un pouvait m'aider, ce serait vraiment sympa, je sèche vraiment là...

Merci

Lien vers le commentaire
Partager sur d’autres sites

Plutôt que d'implémenter un seul listener (en faisant implémenter par ton Activity l'interface OnItemSelectedListener), tu peux implémenter un listener pour chaque spinner, via une inner-class anonyme pour chaque listener. Ainsi, tu pourras différencier les traitements liés à chaque spinner

Lien vers le commentaire
Partager sur d’autres sites

J'aimerais pouvoir faire la même chose que theo744 mais je n'ai pas très bien compris ta réponse chpil...

En reprenant l'exemple que tu m'avais donné dans ce post Gestion de variables sur spinner, il faudrait que je mette ça comme cela :

J'enlève donc implements OnItemSelectedListener .

public class ItemSelectedSpinner{


       public void onItemSelected(AdapterView<?> parent, View v, int pos, long row) {



       }

Ou faut il mettre en place la inner-class et comment ?

Voici des petits screen de l'avancé de mon application =)

da1188a9433ada3caef639702b99aa41.png7528f6992bb639c3133f3f1a77195ab4.png

Encore merci chpil,

Bonne journée

Gabin

Lien vers le commentaire
Partager sur d’autres sites

J'enlève donc implements OnItemSelectedListener

Non, tu n'es pas dans le même cas que theo744, qui, lui, a implémenté son listener directement sur sa classe Activity, et à qui je conseillais de plutôt passer par des classes propres pour implémenter des traitements différents pour ses listeners.

Dans ton cas, si tu as suivi mes indications dans le post auquel tu fais référence (et plus précisément la solution "un seul fichier java"), tu as déjà les bonnes bases. Si tu veux maintenant associer un traitement différent à un autre spinner, il te suffit de créer une autre classe implémentant OnItemSelectedListener

public Main extends Activity  {

   public void onCreate(Bundle savedInstanceState) {
     // blah blah blah
     // ...

     monSpinner1.setOnItemSelectedListener(new MonSpinner1Listener());
     monSpinner2.setOnItemSelectedListener(new MonSpinner2Listener());
   }

   public class MonSpinner1Listener implements OnItemSelectedListener {
     public void onItemSelected(AdapterView<?> parent, View v, int pos, long row) {
         // Traitement à effectuer lors de la sélection d'un élément du premier Spinner
     }
     // ...
   }


   public class MonSpinner2Listener implements OnItemSelectedListener {
     public void onItemSelected(AdapterView<?> parent, View v, int pos, long row) {
         // Traitement à effectuer lors de la sélection d'un élément du second Spinner
     }
     // ...
   }

}

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...