45 votes

Android SeekBar setOnSeekBarChangeListener (barre de recherche)

Je m'interroge sur le comportement du SeekBars OnSeekBarChangeListener d'Android. En particulier, la méthode onProgressChanged est-elle notifiée uniquement pour le premier et le dernier contact sur la barre de recherche ?

J'essaie de rafraîchir un TextView qui devrait montrer la progression actuelle de la SeekBar. Mais le TextView n'est mis à jour qu'au premier et au dernier contact. Le débogage confirme mon hypothèse que cette méthode n'est appelée que deux fois :( Ce que j'aimerais, c'est que le TextView affiche chaque changement de progression de la SeekBar.

En bref, je cherche une possibilité d'obtenir un écouteur de progression qui est appelé pour chaque petit changement de progression.

1voto

shubomb Points 364

Seekbar a appelé la méthode onProgressChanged lors de la première initialisation. Nous pouvons passer outre en utilisant le code suivant Nous devons vérifier le booléen qu'il renvoie false lors de l'initialisation automatique.

volumeManager.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
                if(b){
                    mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, i, 0);
                }
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X