Home Menu

Menu



Avisos

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


 
Herramientas
  #1  
Viejo 25/04/13, 13:31:52
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
ProgressDialog

Hola!

Tengo un problemilla con 2 actividades y un proress dialog

Tengo una actividad inicial que es solo una foto que cuando pulsas llama a la otra actividad, esta segunda actividad tarda en cargar un poco porque tiene bastantes cosas, y me gustaria que mientras este cargando se mostrara una ruedecilla de progreso y un mesanje "Cargando.." vamos, un progress dialog, pero no se muy bien donde llamarlo o como hacerlo, puesto que si lo llamo antes de hacer el startActivity la rueda no gira.

Muchas gracias de antemano!
Responder Con Cita


  #2  
Viejo 25/04/13, 14:54:34
Avatar de rinxe
rinxe rinxe no está en línea
Miembro del foro
Mensajes: 260
 
Fecha de registro: mar 2009
Localización: Teruel
Mensajes: 260
Modelo de smartphone: Xiaomi Mi5S
Versión de ROM: LineageOS 14.1
Versión de Radio: Los 40
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Yo en estos casos me creo una clase AsyncTask que mayormente tiene 3 metodos principales (onPreExecute, doInBackground, onPostExecute).

El metodo onPreExecute seria el primero, antes de ejecutar las tareas. Aqui me creo el dialogo:
Código:
ProgressDialog pDialog = new ProgressDialog(AndroidGame.this);
pDialog.setMessage("Cargando datos. Espere por favor.");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
Luego en el metodo doInBackground, ejecutas los metodos o tareas que necesites cargar mientras se ve el dialogo.

Y el ultimo metodo onPostExecute se puede usar para realizar alguna accion al termino del metodo doInBackground.

Para terminar hay que cerrar el dialogo, o bien al final del doInBackground o si usas el metodo onPostExecute cerrarlo aqui en este ultimo.
Código:
pDialog.dismiss();
Responder Con Cita
  #3  
Viejo 26/04/13, 10:19:04
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
No lo entendi muy bien.. me creo una clase con esos 3 metodos y luego cuando voy a hacer el startActivity justo antes, llamo a onPreExecute?? y en el metodo doInBackground que tengo que hacer? por que mi actividad nueva tarda en cargar pero no hago yo nada...es decir tarda porque tiene bastantes imagenes...es decir, la pantalla inicial se queda un rato hasta que sale la pantalla segunda(ha cargado todo) y es en ese instante cuando quiero mostrarla.

Gracias
Responder Con Cita
  #4  
Viejo 26/04/13, 11:35:30
Avatar de rinxe
rinxe rinxe no está en línea
Miembro del foro
Mensajes: 260
 
Fecha de registro: mar 2009
Localización: Teruel
Mensajes: 260
Modelo de smartphone: Xiaomi Mi5S
Versión de ROM: LineageOS 14.1
Versión de Radio: Los 40
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Casi te dejo un ejemplo que te sera mas claro, al final del articulo puedes descargar el codigo fuente: Tareas en segundo plano en Android (I): Thread y AsyncTask

La cuestion es crear la clase que extienda de AsyncTask dentro de la Activity donde quieres que se muestre el dialogo.

Una vez creada simplemente llamas a "new MiClaseAsyncTask().execute();" donde quieres que empiece el proceso y se muestre el dialogo. De lo demas se encarga esta misma clase.

La idea que llevas, seria crear esta clase dentro de la segunda Activity, en el metodo onPreExecute creas el dialogo. Luego en el metodo doInBackGround cargas todas las imagenes que dices que te ralentizan todo. Y para finalizar cierras el dialogo en el metodo onPostExecute.
Y seria cuestion de llamar a "new MiClaseAsyncTask().execute();" en el onCreate de la segunda Activity.

Es muy facil, ya lo veras. Cualquier duda por aqui estaremos !!
Responder Con Cita
  #5  
Viejo 26/04/13, 12:10:09
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Muchas Gracias voy a probar y te comento!
Responder Con Cita
  #6  
Viejo 29/04/13, 12:40:43
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Ya lo probe! y funciona como esperaba! muchas gracias
Responder Con Cita
  #7  
Viejo 30/04/13, 11:41:34
Avatar de rinxe
rinxe rinxe no está en línea
Miembro del foro
Mensajes: 260
 
Fecha de registro: mar 2009
Localización: Teruel
Mensajes: 260
Modelo de smartphone: Xiaomi Mi5S
Versión de ROM: LineageOS 14.1
Versión de Radio: Los 40
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
De nada y me alegro. Un saludo !!!
Responder Con Cita
Respuesta

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


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 03:03:26 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007