2012-02-07 28 views
5

He estado buscando todo el día tratando de encontrar algún código de ejemplo o tutoriales sobre cómo crear un círculo de progreso mientras se realiza la tarea. El tiempo para completar esta tarea varía en consecuencia y hay muchas muestras por ahí que están utilizando el Thread.sleep (xxxx) lo hacen circular pero esto no es eficiente. Esto es lo que quiero hacer, quiero cargar un ListView que se llenó desde un servicio web usando JSON luego de hacer clic en un botón. La vista de lista se está cargando perfectamente bien, pero se tarda de 5 a 10 segundos en cargarse según el tamaño, por lo que quiero mostrar el círculo giratorio mientras el usuario está esperando. ¿Alguien puede compartir algún código de muestra sobre cómo lograr eso?android asyncTask dialog Circle

Gracias

+0

Mi respuesta ayuda para usted? – brian

+0

Si encuentra su respuesta. Por favor revisa una respuesta aceptada. – brian

+0

por favor, haga clic en mi respuesta a la izquierda – brian

Respuesta

5

Puede probar siguiente código,

progDailog = ProgressDialog.show(loginAct,"Process ", "please wait....",true,true); 

new Thread (new Runnable() 
{ 
    public void run() 
    { 
     // your code goes here 
    } 
}).start(); 

Handler progressHandler = new Handler() 
{ 

    public void handleMessage(Message msg1) 
    { 

     progDailog.dismiss(); 
     } 
} 
28

new Load().execute(); llamar.

class Load extends AsyncTask<String, String, String> { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      ProgressDialog progDailog = new ProgressDialog(Activity.this); 
      progDailog.setMessage("Loading..."); 
      progDailog.setIndeterminate(false); 
      progDailog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
      progDailog.setCancelable(true); 
      progDailog.show(); 
     } 
     @Override 
     protected String doInBackground(String... aurl) { 
      //do something while spinning circling show 
      return null; 
     } 
     @Override 
     protected void onPostExecute(String unused) { 
      super.onPostExecute(unused); 
      progDailog.dismiss(); 
     } 
    } 
+0

Gracias Brian y todos ... Esto es muy útil. Lo tengo todo junto ... –

+2

Luego haz un tilde a la izquierda. – brian

+0

Acerca de ProgressDialog (Activity.this); en la clase Load da un error. Por supuesto. ¿Qué debemos usar? –

11
private class LoadAssync extends AsyncTask<String, Void, Void> { 



    protected void onPreExecute() { 

     ProgressDialog dialog; 
        dialog.setMessage("Loading..."); 
    dialog.show(); 
    } 

    protected Void doInBackground(final String... args) { 
     // you can do the code here 
     return null; 


    } 

    protected void onPostExecute(final Void unused) { 

     if (dialog.isShowing()) { 
      dialog.dismiss(); 
     } 

    } 
} 

u puede llamar assync como esto

LoadAssync mAsyync=new LoadAssync(); 
mAsyync.execute(null);