¿Cómo actualizar SeekBar no disparar OnSeekBarChangeListener?

Tengo un SeekBar con una instancia de OnSeekBarChangeListener adjunta. Cada vez que un usuario cambia el valor, su método onProgressChanged () se dispara. Esta bien.

Pero entonces estoy tratando de actualizar el progreso de la SeekBar de esta manera:

seekBar.setProgress(value);

Espero que no se desencadenen eventos – solo el progreso de SeekBar cambiará. Pero onProgressChanged () se llama en este caso también.

¿Cómo puedo cambiar el progreso de un SeekBar sin disparar eventos?

 public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {} 

Mira los parámetros. Tiene un booleano de Usuario, úselo.

 if (fromUser) { ......... ......... } 

Al hacerlo, el código se ejecutará sólo cuando el usuario haya iniciado el cambio. Si establece el valor de seekbar en el código, el evento se disparará pero el código no se ejecutará debido a la instrucción if (). Adiós. -Marco-

Estás cambiando el progreso en el SeekBar . Por supuesto onProgressChanged será llamado.

Si desea evitar esto, puede anular el oyente antes de establecer su valor

 seekBar.setOnSeekBarChangeListener(null); seekBar.setProgress(value); seekBar.setOnSeekBarChangeListener(this); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.