2012-02-07 16 views
5

Ho cercato tutto il giorno oggi cercando di trovare codice di esempio o tutorial su come creare un giro di progresso mentre si esegue l'attività. Il tempo per il completamento di questa attività varia in base a ciò e ci sono molti esempi che utilizzano Thread.sleep (xxxx) che lo fanno girare ma questo non è efficiente. Ecco cosa voglio fare, voglio caricare un ListView che è stato popolato da un servizio web utilizzando JSON dopo aver fatto clic su un pulsante. Il listview si sta caricando perfettamente bene, ma ci vogliono circa 5-10 secondi per caricarsi a seconda delle dimensioni, quindi voglio mostrare il cerchio girando mentre l'utente è in attesa. Qualcuno può condividere qualche esempio di codice su come ottenerlo?finestra di dialogo asyncTask di Android Cerchio

Grazie

+0

La mia risposta aiuta per te? – brian

+0

Se trovi la tua risposta. verificare una risposta accettata. – brian

+0

per favore, fai un segno di spunta sulla mia risposta a sinistra – brian

risposta

5

Si può provare seguente codice,

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(); chiamare.

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

Grazie Brian e tutti ... Questo è molto utile. Ho preso tutto insieme .. –

+2

Quindi per favore fai un segno di spunta a sinistra. – brian

+0

Informazioni su ProgressDialog (Activity.this); nella classe Load dà un errore. Ovviamente. Cosa dobbiamo usare? –

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 può chiamare assync come questo

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