Android SeekBar setOnSeekBarChangeListener

Me pregunto sobre el comportamiento de la androide SeekBars OnSeekBarChangeListener. ¿Es correcto que el método onProgressChanged reciba una notificación para el primer toque en el buscador y en el último toque en el buscador?

Estoy intentando refrescar un TextView que debe demostrar el progreso actual del SeekBar. Sin embargo, el TextView se actualiza sólo en el primer toque y último toque. Depurar esto confirma mi suposición, el método se llama dos veces 🙁 Lo que me gustaría tener es que el TextView muestra cada cambio de progreso en el SeekBar.

En resumen: Estoy buscando una posibilidad para obtener un oyente de progreso que se llama para cada pequeño cambio de progreso.

Espero que esto ayude:

final TextView t1=new TextView(this); t1.setText("Hello Android"); final SeekBar sk=(SeekBar) findViewById(R.id.seekBar1); sk.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { // TODO Auto-generated method stub t1.setTextSize(progress); Toast.makeText(getApplicationContext(), String.valueOf(progress),Toast.LENGTH_LONG).show(); } }); 

OnProgressChanged () debe ser llamado en cada progreso cambiado, no sólo en el primer y último toque (por eso tienes los métodos onStartTrackingTouch () y onStopTrackingTouch ()).

Asegúrese de que su SeekBar tiene más de 1 valor, es decir, su MAX> = 3.

En su onCreate:

  yourSeekBar=(SeekBar) findViewById(R.id.yourSeekBar); yourSeekBar.setOnSeekBarChangeListener(new yourListener()); 

Su oyente:

 private class yourListener implements SeekBar.OnSeekBarChangeListener { public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // Log the progress Log.d("DEBUG", "Progress is: "+progress); //set textView's text yourTextView.setText(""+progress); } public void onStartTrackingTouch(SeekBar seekBar) {} public void onStopTrackingTouch(SeekBar seekBar) {} } 

Por favor, comparta algunos códigos y los resultados de Log para más ayuda.

OnProgressChanged se llama cada vez que mueve el cursor.

 @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { textView.setText(String.valueOf(new Integer(progress))); } 

Así que textView debe mostrar el progreso y alterar siempre si el buscador se está moviendo.

Anular todos los métodos

  @Override public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { } @Override public void onStartTrackingTouch(SeekBar arg0) { } @Override public void onStopTrackingTouch(SeekBar arg0) { } 

Todas las respuestas son correctas, pero es necesario convertir primero un número grande de grasa en un temporizador:

  public String toTimer(long milliseconds){ String finalTimerString = ""; String secondsString; // Convert total duration into time int hours = (int)( milliseconds / (1000*60*60)); int minutes = (int)(milliseconds % (1000*60*60)) / (1000*60); int seconds = (int) ((milliseconds % (1000*60*60)) % (1000*60) / 1000); // Add hours if there if(hours > 0){ finalTimerString = hours + ":"; } // Prepending 0 to seconds if it is one digit if(seconds < 10){ secondsString = "0" + seconds; }else{ secondsString = "" + seconds;} finalTimerString = finalTimerString + minutes + ":" + secondsString; // return timer string return finalTimerString; } 

Y así es como lo usas:

 @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { textView.setText(String.format("%s", toTimer(progress))); } 
  • Custom SeekBar Drawable Android
  • Androide seekbar progressdrawable: mapa de bits de fondo doesnt estiramiento (altura)
  • Barra de búsqueda de Android con marcas en puntos de progreso discretos
  • Android Eliminar el fondo de SeekBar
  • Cómo configurar el progreso de SeekBar de Android de forma programable
  • Android SeekBar establecer el valor de progreso
  • Centro de búsqueda no está en el punto de inicio
  • Cómo hacer un SeekBar vertical en Android?
  • Añadir texto dinámico a través de Android SeekBar thumb
  • ¿Cómo mostrar algún valor en la barra de búsqueda por defecto?
  • Discrete seekbar en la aplicación de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.