PDA

Ver la Versión Completa : ProgressDialog & dismiss()


athlit
02/05/11, 16:56:44
Hola a todos,
soy nuevo en Android y estoy peleandome con el ProgressDialog y no veo sentido alguno al poco caso que me hace la instrucción dismiss(), algo estaré haciendo mal seguro:

Tengo una Activity(1) que pasa una información a otra Activity(2), ésta al mostrarse ya muestro lo siguiente:


ProgressDialog = new ProgressDialog(this);
ProgressDialog.show(this, "Cargando datos....", "Cargando");
Y cuando he cargado los datos en esta Activity(2) intento quitar el ProgressDialog con un:


ProgressDialog.dismiss();
Resultado?

Se me queda el ProgressDialog permanentemente con el "Cargando datos...."

¿Alguien sabe como puedo desactivarlo?
¿Que es lo que estoy haciendo mal?

Gracias a todos y un saludo.

Athlit

fitahxc
09/05/11, 08:54:55
Buenas tio! Tuve el mismo problema y lo solucione de la siguiente manera, te pego el codigo para que te sea mas facil:

public class conectar extends Activity {
private TextView in_mostrar;
private final Handler handler = new Handler();
private final Runnable dismisProgDialog = new Runnable(){
public void run(){
in_mostrar.setText(mostrar);
progDailog.dismiss();

}
};
private String mostrar ="";
private ProgressDialog progDailog = null;

/** Called when the activity is first created. */
override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

in_mostrar = (TextView) findViewById(R.id.mostrar);


calc.setOnClickListener(new OnClickListener() {

@SuppressWarnings("static-access")
public void onClick(View v) {

progDailog = ProgressDialog.show(conectar.this,"Cargando...", "Obteniendo resultados para la consulta: Linea "+linea+"; Parada "+parada+". Por favor espere...",true,false);



new Thread(new Runnable() {
public void run() {
try{
//CODIGO QUE QUIERAS EJECUTAR
}
Log.d("Conectar", mostrar);


} catch (Exception e) { //Try del Thread
// TODO Auto-generated catch block
e.printStackTrace();
}

finally {
handler.post(dismisProgDialog);
};

}//run

}).start(); //Thread

} //calc.onclick
});//calc.onclick
} //oncreate


Basicamente necesitar ejecutar el codigo que quieras en un hilo independiente del del progressDialog y la instruccion .dismiss se la dejas a un handler. Pruebalo a ver que tal te va ;)

athlit
09/05/11, 11:29:48
Hola fitahxc,
muchas gracias por contestar. Efectivamente, con el código que me has puesto ya me ha funcionado! El tema está en enviar el mensaje al Handler y pararlo desde ahí!

Muchas gracias por todo y un saludo!!

Athlit.