2011-01-20 17 views
6

Quiero abrir un ProgressDialog cuando hago clic en el elemento de la lista que abre los datos del elemento cliqueado del servicio web. El diario de progreso debe aparecerse hasta que se abra el contenido web del elemento cliqueado.Desarreglo de ProgressDialog en Android

Conozco el código de uso del cuadro de diálogo de progreso, pero no sé cómo descartarlo en particular.

He oído que Handler se va a utilizar para descartar el cuadro de diálogo Progress, pero al final no encontré ningún ejemplo valioso para utilizar el controlador.

¿Alguien puede decirme cómo puedo usar el controlador para cerrar el cuadro de diálogo de progreso?

Gracias, David

Respuesta

14

Hola esto es lo que quiere

 public void onClick(View v) 
     { 
      mDialog = new ProgressDialog(Home.this); 
      mDialog.setMessage("Please wait..."); 
      mDialog.setCancelable(false); 
      mDialog.show(); 
      new Thread(new Runnable() 
      { 
       @Override 
       public void run() 
       { 
        statusInquiry(); 
       } 
      }).start(); 
     } 

aquí es el servicio web web que se llama

void statusInquiry() 
{ 
    try 
    { 
     //calling webservice 
        // after then of whole web part you will send handler a msg 
     mHandler.sendEmptyMessage(10); 
    } 
    catch (Exception e) 
    { 
     mHandler.sendEmptyMessage(1); 
    } 
} 

y aquí va el código de controlador

Handler mHandler = new Handler() 
{ 
    public void handleMessage(android.os.Message msg) 
    { 
     super.handleMessage(msg); 

     switch (msg.what) 
     { 
      case 10: 
       mDialog.dismiss(); 
       break; 
        } 
      } 
     } 
}; 
0

Un Solutiion podría ser la siguiente:

ProgressDialog progressDialog = null; 
    // ... 
    progressDialog = ProgressDialog.show(this, "Please wait...", true); 
    new Thread() { 
     public void run() { 
      try{ 
        // Grab your data             
      } catch (Exception e) { } 

      // When grabbing data is finish: Dismiss your Dialog 
      progressDialog.dismiss(); 
     } 
    }.start(); 
+2

que causará un accidente si la actividad se destruye antes de llegar a la 'progressDialog.dismiss()' línea – Warpspace

Cuestiones relacionadas