Uno de mi problema es cambiar el formato del cronómetro en Android. tengo el problema de que el cronómetro muestra su hora en formato 00:00 y quiero que venga en formato 00:00:00. ¿Alguien sabe la respuesta?cómo cambiar el formato del cronómetro?
Respuesta
Estaba trabajando en un temporizador de cuenta atrás que usó este formato, pero fue para HH: MM: SS. Es eso lo que estás buscando o estás buscando MM: SS: milisegundos. Podría trabajar con este código y hacer que cuente desde 0 en lugar de hacia abajo. Aquí está el enlace - Formatting countdown timer with 00:00:00 not working. Displays 00:00:00 until paused then displays the time remaining y esto podría ayudar - Show milliseconds with Android Chronometer
cronómetros método setFormat se utiliza para agregar texto con formato como:
"Tiempo% s desde el principio"
resultante
"Hora 00:00 desde el inicio"
En el cronómetro no puede seleccionar entre los formatos HH: MM: SS o MM: SS.
Esto significa que no hay forma de que pueda establecer un formato cuyo resultado final sea "00:00:00" sin realizar algunas manipulaciones en 'ChronometerTickListener' como sugieren otras respuestas. no es así? –
Estaba lidiando con el mismo problema. La forma más fácil de lograr este objetivo sería ser de primer orden UPDATETEXT método del cronómetro, pero por desgracia, es un método privado por lo que he hecho esto de esta manera:
mChronometer.setText("00:00:00");
mChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
CharSequence text = chronometer.getText();
if (text.length() == 5) {
chronometer.setText("00:"+text);
} else if (text.length() == 7) {
chronometer.setText("0"+text);
}
}
});
Sé que sería mejor escribir de encargo Reproductor pero para proyectos pequeños puede ser adecuado.
El formato de ajuste en el cronómetro permite formatear el texto que rodea el tiempo real y la hora se formatea utilizando DateUtils.formatElapsedTime.
Espero que ayude.
Aquí es una solución fácil e inteligente para el formato de hora 00:00:00 en cronómetro en Android
Chronometer timeElapsed = (Chronometer) findViewById(R.id.chronomete);
timeElapsed.setOnChronometerTickListener(new OnChronometerTickListener(){
@Override
public void onChronometerTick(Chronometer cArg) {
long time = SystemClock.elapsedRealtime() - cArg.getBase();
int h = (int)(time /3600000);
int m = (int)(time - h*3600000)/60000;
int s= (int)(time - h*3600000- m*60000)/1000 ;
String hh = h < 10 ? "0"+h: h+"";
String mm = m < 10 ? "0"+m: m+"";
String ss = s < 10 ? "0"+s: s+"";
cArg.setText(hh+":"+mm+":"+ss);
}
});
timeElapsed.setBase(SystemClock.elapsedRealtime());
timeElapsed.start();
Amigo, realmente muy buena solución. La forma más fácil que he visto;) –
gracias por su idea, he editado su código un poco para mejorar el rendimiento aquí \t cArg.setText (String.format ("% 02d:% 02d:% 02d", h, m , s)); –
¿hay alguna forma de hacer esto si el cronómetro está en un widget (widget de pantalla de inicio)? – ArJ
You can use this code. Setting the format and removing it
//Removing the format (write this in oncreate)
if(mChronometerformat){
mSessionTimeChro.setOnChronometerTickListener(new OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
if (chronometer.getText().toString()
.equals("00:59:59"))
chronometer.setFormat(null);
}
});}
// Setting the format
mSessionTimeChro.setBase(SystemClock.elapsedRealtime());
if (diffHours == 0) {
mSessionTimeChro.setFormat("00:%s");
mChronometerformat = true;
}
mSessionTimeChro.start();
¿Por qué no utilizar la clase Date ??
timeElapsed.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer cArg) {
long time = SystemClock.elapsedRealtime() - cArg.getBase();
Date date = new Date(time);
DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
String dateFormatted = formatter.format(date);
cArg.setText(dateFormatted);
}
});
simple y limpia
La clase Chronometer espera un patrón específico en su método setText (String). Su código generará una excepción. –
@FranziskusKarsunke ¿Has verificado este patrón? ** Por defecto, mostrará el valor del temporizador actual en el formato "MM: SS" o "H: MM: SS", o puede usar setFormat (String) para formatear el valor del temporizador en una cadena arbitraria. ** – Marurban
Esto funciona, pero es más eficiente trabajar con el tiempo como un objeto largo en lugar de crear un nuevo objeto Date y DateFormat cada segundo. – k2col
- 1. Android Cronómetro formato
- 2. Reinicio del cronómetro
- 3. ¿Cronómetro cronómetro .Net y multinúcleo?
- 4. Android - Obtenga tiempo del widget del cronómetro
- 5. Android: cronómetro como un cronómetro persistente. Cómo establecer la hora de inicio? ¿Qué es el cronómetro "Base"?
- 6. ¿Está realmente roto el cronómetro?
- 7. reprogramar el cronómetro en android
- 8. Cronómetro de alto rendimiento frente a Cronómetro
- 9. cronómetro JavaFX
- 10. Diferencias en ticks transcurridos propiedad del cronómetro
- 11. Cronómetro eficiente
- 12. Creando un cronómetro en Android
- 13. ¿Cómo establecer el cronómetro Android base desde el objeto Date?
- 14. Cambiar el formato de un elemento ComboBox
- 15. Cronómetro en Python
- 16. cambiar el formato de fecha en php
- 17. ¿Cómo cambiar el formato de un panel facet_wrap individual?
- 18. Patrón de observador para el cronómetro
- 19. Comprobar si el cronómetro está funcionando
- 20. Cambiar el formato de sangrado de vim
- 21. cambiar el formato de fecha en JSF
- 22. Cronómetro de Visual C++
- 23. Cómo cambiar el formato automático de Visual Studio
- 24. cómo cambiar el formato de página en Runtime? (Jasperreport)
- 25. ¿Cómo cambiar el formato predeterminado en StringToDate? Spring WebFlow
- 26. Cómo cambiar el formato predeterminado con boost :: log :: BOOST_TRIVIAL_LOG?
- 27. Cómo cambiar el formato de fecha de DateTimePicker en vb.net
- 28. ¿Cómo puedo cambiar el formato de fecha en Java?
- 29. Jersey + Jackson JSON serialización de formato de fecha - cómo cambiar el formato o usar JacksonJsonProvider personalizado
- 30. cronómetro no se detiene en el androide
estoy buscando HH: MM: SS ......... cronómetro bt no lo demuestra cuando está en segundos o minutos las 00:00: 00 format.it solo muestra 00:00 cuando la cuenta atrás está en sec. o min. – Nikki