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 01/04/12, 20:39:53
Array

[xs_avatar]
FartBomb FartBomb no está en línea
Miembro del foro
 
Fecha de registro: feb 2012
Mensajes: 60
Modelo de smartphone: samsung galaxy y
Tu operador: Movistar
Solucionar error en dialog al mostar datos de dasedata

hola os dejo aquí el código del dialog a ver si vosotros podeis ver los errores, se queda el dialog procesando todo el rato, ese es el error, pero no se como solucionarlo:


ProgressDialog Esperar;


Esperar=new ProgressDialog(MapaActivity.this);
Esperar.setMessage("Cargando Datos...");
Esperar.show();
Esperar.setIndeterminate(true);
cargandodatos();


public void cargandodatos ()
{

Runnable runnable=new Runnable() {

public void run() {
// TODO Auto-generated method stub
puntos=obtenerListaDeLocations();
handler.sendEmptyMessage(0);//Decir que el hilo termino


}
Handler handler = new Handler()
{
private void handlermessa(Message message) {
// TODO Auto-generated method stub

for(int i=0;i<puntos.size();i++)
{
capa.add(puntos.get(i));

}
Esperar.hide();

}
};
};
new Thread(runnable).start();/
}
Responder Con Cita


  #2  
Viejo 02/04/12, 11:16:43
Array

[xs_avatar]
monchyrcg monchyrcg no está en línea
Miembro del foro
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Tu operador: Orange
Se esta cargando constantemente porque no cierras nunca el progress dialog. En algún momento dentro del handler tienes que poner esperar.dismiss(); yo creo que lo debes sustituir por esperar.hide();

Prueba y comenta!!!
Responder Con Cita
  #3  
Viejo 02/04/12, 12:39:16
Array

[xs_avatar]
FartBomb FartBomb no está en línea
Miembro del foro
 
Fecha de registro: feb 2012
Mensajes: 60
Modelo de smartphone: samsung galaxy y
Tu operador: Movistar
nada , se sigue quedando trabado todo el rato.
Responder Con Cita
  #4  
Viejo 02/04/12, 13:18:04
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
Esto:

private void handlermessa(Message message)

Cambialo por esto:

public void handleMessage (Message message)

Si aún así sigue sin funcionar, cambia esto:

handler.sendEmptyMessage(0);

Por esto:

handler.sendMessage(null);
Responder Con Cita
  #5  
Viejo 02/04/12, 13:26:47
Array

[xs_avatar]
monchyrcg monchyrcg no está en línea
Miembro del foro
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Tu operador: Orange
Un ejemplo echo por mi, mi clase hereda de MapActivity y hereda de Runnable , te pongo el ejemplo y ya esta:

Código:
public class PruebaMapa extends MapActivity implements Runnable{
......................
..............
........................
.......................
......
.....
private void comunidadSeleccionada(String modoParsear){ if(esComunidad){ comunidad= modoParsear; if(comunidad.equals("TODAS")) todas = true; else todas = false; } else if(esZona) zona = modoParsear; pd = ProgressDialog.show(this,"Cargando...","Recuperando datos", true, true); Thread thread = new Thread(this); thread.start(); } /* * Aquí es donde compruebo las variables para llamar al parseador. Me ayudo de un runnable para * hacerlo en segundo plano y que sea más comodo para el usuario * @see java.lang.Runnable#run() */ public void run() { Looper.prepare(); if(esZona){ listaDeSitios = parseador.parse(null, zona); if(listaDeSitios.isEmpty()){ handler.sendEmptyMessage(0); mapView.postInvalidate(); controler.animateTo(calcularCoordenadas(listaDeSitios.get(0).getCiudad())); Toast.makeText(getApplicationContext(), "Zona no encontrada", Toast.LENGTH_SHORT).show(); }else{ crearPuntos(); controler.setZoom(7); handler.sendEmptyMessage(0); } } else if(esComunidad){ if(todas){ listaDeSitios = parseador.parse(); crearPuntos(); mapView.postInvalidate(); handler.sendEmptyMessage(0); Toast.makeText(getApplicationContext(), listaDeSitios.size()+" zonas encontradas", Toast.LENGTH_SHORT).show(); } else{ listaDeSitios = parseador.parse(comunidad,null); if(listaDeSitios.isEmpty()){ handler.sendEmptyMessage(0); Toast.makeText(getApplicationContext(), "Ninguna zona en esta comunidad", Toast.LENGTH_SHORT).show(); } else{ crearPuntos(); mapView.postInvalidate(); controler.animateTo(calcularCoordenadas(listaDeSitios.get(0).getComunidad())); handler.sendEmptyMessage(0); Toast.makeText(getApplicationContext(), listaDeSitios.size()+" zonas encontradas", Toast.LENGTH_SHORT).show(); } } } Looper.loop(); Looper.myLooper().quit(); } private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { pd.dismiss(); } };
}
En el método comunidad sleccionada creo el progress dialog e inicio el hilo. En el método run se realiza en segundo plano y cuando acabo llamo al metdo sendEmptyMessage igual que haces tu. Echale un ojo a ver si te sirve. Un saludo
Responder Con Cita
  #6  
Viejo 02/04/12, 14:22:51
Array

[xs_avatar]
FartBomb FartBomb no está en línea
Miembro del foro
 
Fecha de registro: feb 2012
Mensajes: 60
Modelo de smartphone: samsung galaxy y
Tu operador: Movistar
sii ya m funciono muchas gracias era solamente cambiar el private por public , gracias y un saludo
Responder Con Cita
Respuesta

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



Hora actual: 13:30:20 (GMT +1)



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

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