Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 29/08/13, 16:21:07
Array

[xs_avatar]
Marciano Verde Marciano Verde no está en línea
Miembro del foro
 
Fecha de registro: mar 2013
Mensajes: 65
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Movistar
Montrar contador mientras se esta incrementando

Hola.

Quería hacer un simple contador que vaya del 0 al 100000.
El código es este:

for (int indice=0; indice<100001; indice++) {
cont.setText( String.valueOf(indice));
}

la variable "cont" hace referencia a un TextView

Pues bien, el problema es que me aparece de golpe el número 100000, sin pasar por los anteriores, yo lo quiero es ver los números corriendo.
Supongo que dentro del bucle habrá que hacer algún tipo de refresco, ya lo he intentado con "cont.onPreDraw()" y con "cont.refreshDrawableState();" pero nada...
Responder Con Cita


  #2  
Viejo 29/08/13, 16:35:19
Array

[xs_avatar]
Bongiovi Bongiovi no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
Creo que el problema es que el conteo es tan rapido que no se ve. Pon un sleep dentro del for de medio segundo por ejemplo.
Responder Con Cita
  #3  
Viejo 29/08/13, 16:44:49
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Pregunta muy parecida a otra que hicieron ayer, pero sobre imágenes en lugar de sobre texto.

Si ese bucle lo ejecutas en el hilo principal NUNCA se ejecutará el onDraw hasta que la función donde está el for termine. Por lo tanto cuando va a pintar te pinta directamente el 10.000, porque es la única vez que se va a ejecutar.

¿Formas de solucionarlo? Obviamente todas usando un hilo paralelo para contar que actualice el texto en el hilo principal. La mejor de todas usando un AsyncTask con publishProgress.
Responder Con Cita
  #4  
Viejo 29/08/13, 17:53:15
Array

[xs_avatar]
Bongiovi Bongiovi no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
 Cita: Originalmente Escrito por kriogeN Ver Mensaje
Pregunta muy parecida a otra que hicieron ayer, pero sobre imágenes en lugar de sobre texto.

Si ese bucle lo ejecutas en el hilo principal NUNCA se ejecutará el onDraw hasta que la función donde está el for termine. Por lo tanto cuando va a pintar te pinta directamente el 10.000, porque es la única vez que se va a ejecutar.

¿Formas de solucionarlo? Obviamente todas usando un hilo paralelo para contar que actualice el texto en el hilo principal. La mejor de todas usando un AsyncTask con publishProgress.
Pero el setText si que se ejecuta en cada iteración, no?
Responder Con Cita
  #5  
Viejo 29/08/13, 18:11:17
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
 Cita: Originalmente Escrito por Bongiovi Ver Mensaje
Pero el setText si que se ejecuta en cada iteración, no?
Si, pero hasta que no se ejecuta el onDraw no cambia en la pantalla.
Responder Con Cita
  #6  
Viejo 29/08/13, 23:05:47
Array

[xs_avatar]
jtsamper jtsamper no está en línea
Miembro del foro
 
Fecha de registro: abr 2013
Localización: Madrid
Mensajes: 149
Modelo de smartphone: Xperia Arc, Nexus 5
Tu operador: Movistar
Usa un handler para eso asi te ira mostrando uno a uno los numero
De la otra forma, añadiendo Thread.sleep , se consigue que se pare el hilo principal y hasta que no acabe la app quedara bloqueada
__________________
Controlador de Medicamentos 1.5 (https://play.google.com/store/apps/d...mentcontrolled)
Legislación Basica Española 1.1 (https://play.google.com/store/apps/d...islacionbasica)
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 07:46:52 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /