Home Menu

Menu



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 01/04/12, 20:39:53
Avatar de FartBomb
FartBomb FartBomb no está en línea
Miembro del foro
Mensajes: 60
 
Fecha de registro: feb 2012
Mensajes: 60
Modelo de smartphone: samsung galaxy y
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
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
Avatar de monchyrcg
monchyrcg monchyrcg no está en línea
Miembro del foro
Mensajes: 384
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Versión de ROM: v10d
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de FartBomb
FartBomb FartBomb no está en línea
Miembro del foro
Mensajes: 60
 
Fecha de registro: feb 2012
Mensajes: 60
Modelo de smartphone: samsung galaxy y
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
nada , se sigue quedando trabado todo el rato.
Responder Con Cita
  #4  
Viejo 02/04/12, 13:18:04
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de monchyrcg
monchyrcg monchyrcg no está en línea
Miembro del foro
Mensajes: 384
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Versión de ROM: v10d
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de FartBomb
FartBomb FartBomb no está en línea
Miembro del foro
Mensajes: 60
 
Fecha de registro: feb 2012
Mensajes: 60
Modelo de smartphone: samsung galaxy y
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
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   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: 20:35:49 (GMT +1)

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