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

Android Discussion :

Comment empecher Spiinner onItemSelected


Sujet :

Android

  1. #1
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut Comment empecher Spiinner onItemSelected
    Bonjour

    J'ai un spinner sp1 que je remplis de item0 à item10
    J'implemente l'event onItemSelected


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sp1.setOnItemSelectedListener(new OnItemSelectedListener() {
     
                           @Override
     
                           public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                             // do someting
                           }
     
                           @Override
                           public void onNothingSelected(AdapterView<?> parent) {
     
                           }
                       });
    Quand je lance le prog est n'ai selectionné aucun item, le onItemSelected est declenché avec position = 0 ;
    la le problème je voudrais que le onItemSelected soit déclenché seulement si j'ai choisi un item

    Merci

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Je peux me tromper... mais un spinner a obligatoirement un item de sélectionné... donc il me semble que c'est bien le comportement attendu.

    Il y a deux façons de ne pas avoir le premier événement (et encore une fois, selon ce qu'on cherche à obtenir en général cela ne pose pas de problème d'avoir ce premier onItemSelected):
    * Initialiser le listener du spinner dans le onStart au lieu du onCreate
    * Maintenir un boolean dans le listener pour savoir si on a déjà été appelé une fois ou pas.

    Mais en règle général, on utilise d'autre méthodes:

    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
    30
     
    class Toto extends Activity
    {
         int currentData;
     
         public void onCreate(Bundle b)
         {
              [...]
     
              currentData = readData();
              spinner.setAdapter(...);
              spinner.setSelection(currentData);
              spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
                           @Override
                           public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                              if (position != Toto.this.currentData)
                                  Toto.this.onDataChanged(position);
                           }
                           @Override
                           public void onNothingSelected(AdapterView<?> parent) {
                           }
                       });
           }
     
           public void onDataChanged(int position)
           {
                currentData = position;
                writeData();
           }
    }
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Comment empecher le Alt + F2 ??
    Par phoenix007 dans le forum Access
    Réponses: 12
    Dernier message: 25/08/2006, 08h52
  2. [C#] Comment empecher les modification dans un DataGrid ?
    Par layate dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/06/2005, 17h11
  3. Comment empêcher le démarrage d'un service ?
    Par narmataru dans le forum Administration système
    Réponses: 2
    Dernier message: 17/01/2005, 10h15
  4. [MFC] COmment empecher le resize d'un SDI ?
    Par Soulsurfer dans le forum MFC
    Réponses: 12
    Dernier message: 28/06/2004, 17h28
  5. [JBuilder9][JSP] Comment empêcher la recompilation
    Par lamimolette75 dans le forum JBuilder
    Réponses: 2
    Dernier message: 11/07/2003, 15h20

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