IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Spinner setOnItemSelectedListener est exécuté à la création de l'activity


Sujet :

Composants graphiques Android

  1. #1
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut Spinner setOnItemSelectedListener est exécuté à la création de l'activity
    Bonjour,

    Mon problème est le suivant,

    Je possède un Spinner. J'aimerai récupérer l'événement lorsque l'utilisateur sélectionne une ligne. Pour cela je définit l'événement comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    final Spinner sp = (Spinner) convertView.findViewById (R.id.spinner);
    sp.setOnItemSelectedListener (new OnItemSelectedListener ()
    			{
     
    				@Override
    				public void onItemSelected (AdapterView<?> arg0, View v,
    						int pos, long row)
    				{
    					if (pos == 0)
    						Global.unSelected (sp);
    					else
    						 Global.Selected(sp);
    				}
     
    				@Override
    				public void onNothingSelected (AdapterView<?> arg0)
    				{
    					// TODO Auto-generated method stub
     
    				}
     
    			});

    Tout fonctionne très bien. Mon problème est que lors de la création de mon activity, Ma fonction Global.unSelected (sp); est toujours exécute alors que je n'ai rien sélectionné!
    Ceci peut se comprendre car l'application sélectionne toujours une valeur par défaut mais alors dans ce cas comment faire pour entrer dans mon événement seulement quand l'utilisateur sélectionne une valeur?

    Merci d'avance

    PS: J'ai essayé onItemClickListener mais ceci ne fonctionne pas pour les Spinner!

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 4 589
    Points : 8 996
    Points
    8 996
    Par défaut
    Bonjour,

    C'est pas propre mais cela marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    private boolean FirstStep = true;
     
    final Spinner sp = (Spinner) convertView.findViewById (R.id.spinner);
    sp.setOnItemSelectedListener (new OnItemSelectedListener ()
    			{
     
    				@Override
    				public void onItemSelected (AdapterView<?> arg0, View v,
    						int pos, long row)
    				{
                                            if (FirstStep) {
                                                  FirstStep = false;
                                                  return;
                                            }
    					if (pos == 0)
    						Global.unSelected (sp);
    					else
    						 Global.Selected(sp);
    				}
     
    				@Override
    				public void onNothingSelected (AdapterView<?> arg0)
    				{
    					// TODO Auto-generated method stub
     
    				}
     
    			});
    Si quelqu'un a mieux je suis tout ouïe.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Effectivement, c'est bien ce que je pensais, il faut faire appelle à cette bidouille!

    Merci pour ton aide!

    Si quelqu'un a quelque chose de mieux je suis toujours preneur!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/04/2008, 10h21
  2. Vérification si le serveur Firebird est exécuté
    Par Socrat dans le forum C++Builder
    Réponses: 0
    Dernier message: 20/10/2007, 11h26
  3. Réponses: 4
    Dernier message: 23/07/2007, 16h43
  4. Réponses: 2
    Dernier message: 18/07/2006, 18h53
  5. La fonction à la fermeture d'un fichier est exécutée 2 fois...
    Par Pierre Fauconnier dans le forum Access
    Réponses: 4
    Dernier message: 27/04/2006, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo