Estoy usando un NumberPicker y apuntar a API 11 y superior (3.0 y superior), entonces estoy usando el NumberPicker compatible. Esto se está utilizando en una aplicación de temporizador. Quiero poder ocultar los botones de incremento y disminución a voluntad para que los botones no ocupen espacio en el diseño cuando están ocultos. Intenté hacer esto:Android NumberPicker ocultar botones de incremento y decremento
View increment = secs.getChildAt(0);
increment.setVisibility(View.GONE);
View decrement = secs.getChildAt(2);
decrement.setVisibility(View.GONE);
donde secs es mi NumberPicker por segundos en el temporizador. Si trato de ocultar el lugar donde se muestra el número (un widget EditText) se oculta bien, pero el código anterior no hace nada.
Entonces, mi pregunta es, ¿cómo logro ocultar los botones de incremento y disminución? Realmente me gustaría evitar hacer mi propio selector de número personalizado, como he leído en otras publicaciones, pero si esa es realmente la única forma en que estoy dispuesto a intentarlo.
Gracias!
Aquí hay un código adicional según lo solicitado. Código en el método onClick para cuando se pone en marcha el cronómetro:
if (stopPush)
{
startTime = System.currentTimeMillis() - elapsedTime;
}
else
{
startTime = System.currentTimeMillis();
}
mHandler.removeCallbacks(startTimer);
mHandler.postDelayed(startTimer, 0);
Código que maneja habilidades cronómetro:
private Runnable startTimer = new Runnable()
{
public void run()
{
elapsedTime = System.currentTimeMillis() - startTime;
updateTimer(elapsedTime);
mHandler.postDelayed(this, REFRESH_RATE);
}
};
código para calcular y actualizar el tiempo del cronómetro:
this.millis = (int) (elapsedTime/100);
this.seconds = (int) (elapsedTime/1000);
this.minutes = (seconds/60);
this.hours = (minutes/60);
millis = millis % 10;
seconds = seconds % 60;
minutes = minutes % 60;
hours = hours % 24;
runOnUiThread(new Runnable()
{
public void run()
{
hrs.setValue(hours);
}
});
runOnUiThread(new Runnable()
{
public void run()
{
mins.setValue(minutes);
}
});
runOnUiThread(new Runnable()
{
public void run()
{
secs.setValue(seconds);
}
});
runOnUiThread(new Runnable()
{
public void run()
{
mills.setValue((int) millis);
}
});
Si no proporciono los valores mínimo y máximo, ¿me encontraré con algún otro problema? ¿Existe un mínimo y máximo predeterminado incorporado si no se proporciona que podría causar bloqueos? ¡Gracias por la sugerencia! Eso es definitivamente lo suficientemente simple, siempre y cuando todo lo demás funcione correctamente. –
Intenté su sugerencia y los botones desaparecen, pero no hay ningún efecto cuando intento llamar a setValue para cambiar el valor del número. Simplemente se mantiene en 0. –
Esto no es lo que esperaba. ¿Podría publicar algún código sobre lo que hace exactamente? – barrel