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 :

Listener exécuté sans raison


Sujet :

Android

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 16
    Points
    16
    Par défaut Listener exécuté sans raison
    Salut à tous !

    J'ai un problème avec mes listeners en général, ils sont exécutées une première fois sans raison.
    Par exemple j'attribue un listener sur ma seekbar appelé "sbPage" de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sbPage.setOnSeekBarChangeListener(mSbChange);
    Je fais ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SeekBar.OnSeekBarChangeListener mSbChange = new OnSeekBarChangeListener() 
    {
    		@Override
    		public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) 
    		{
    		   Log.e("CHANGE", "CHANGE SBAR");
                       //Instructions 
                    }
    }
    Mon problème c'est qu'au lancement de ma vue lorsqu'elle apparait à l'écran il apparait dans les log : "CHANGE SBAR" et je ne comprends pas pourquoi.
    Cette fonction ne devrait s'exécuter que lorsque la valeur de la seekbar change comment faire pour qu'elle ne soit pas appelé à l'apparition de la vue ?

    Merci bien de votre aide

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Peut être que ta seekbar possède le focus dès son apparition, ce qui pourrait expliquer l'invocation de la méthode onProgressChanged()...
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Cela vient du fait que lorsque la ProgressBar est initialisée, Android lui affecte une valeur (soit par défaut, soit celle indiquée dans le XML)
    C'est à cela que sert le deuxième paramètre de la fonction du listener.
    boolean fromUser t'indique si c'est Android qui a modifié cette valeur (lors de l'initialisation) ou si c'est toi (en appuyant dessus par exemple)

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Merci bien ca marche parfaitement dans ce cas en testant fromUser mais dans le cas d'un spinner je n'ai pas cette variable en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //Listener sur le bouton du changement de couleur
    	      spinnerChoixCouleur.setOnItemSelectedListener (new Spinner.OnItemSelectedListener()
    	      {  	   
    	          @Override
    	          public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) 
    	          {
                          //Actions
                       }
     
     
    	      });

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

Discussions similaires

  1. [XL-2003] exécution d'une macro qui appel un autre classeur sans raisons
    Par fllyann dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/03/2011, 10h38
  2. Sauvegarde ne s'exécute plus sans raison visible
    Par tibal dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/03/2008, 11h48
  3. Page s'exécutant sans raison apparente
    Par j_bolduc dans le forum ASP
    Réponses: 4
    Dernier message: 23/02/2006, 15h33
  4. NET::FTP unknown error sans raison
    Par niocco dans le forum Modules
    Réponses: 11
    Dernier message: 29/06/2005, 20h21
  5. ma base gonfle sans raison !!!
    Par hiul dragonfel dans le forum Access
    Réponses: 6
    Dernier message: 20/06/2005, 10h00

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