2012-02-07 13 views
5

今日、仕事が完了している間に進行状況を作成する方法をいくつかのサンプルコードやチュートリアルで検索しようとしています。このタスクが完了するまでの時間はそれに応じて異なり、Thread.sleep(xxxx)を使用して周回しているサンプルが多数ありますが、これは効率的ではありません。ここでは、私は何をしたいのですか、ボタンをクリックした後にJSONを使ってWebサービスから取り込まれたListViewをロードしたいと思います。リストビューは完璧にロードされていますが、サイズに応じてロードするのに約5-10秒かかるので、ユーザーが待機している間に回転している回転を表示します。誰かがそれを達成する方法についていくつかのサンプルコードを共有してくださいか? android asyncTask dialogue円

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(); 
     } 
} 
+0

ようassync呼び出すことができますか?回答が見つかったら – brian

+0

。 plzは1つの受け入れられた答えをチェックします。 – brian

+0

私の答えの左にチェックを入れてください – brian

答えて

5

ありがとうございます。

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(); 
     } 
    } 
28

new Load().execute();呼び出すには、次のコードを試すことができ、あなたに

+0

ブライアンと皆に感謝...これは非常に役に立ちます。私はすべて一緒に持っています。 –

+2

それから左に目を向けるようにしてください。 – brian

+0

ProgressDialogについて(Activity.this);クラスLoadでエラーが発生します。もちろん。我々は何を使用しなければならないのか –

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が私の答えはあなたのために役立ちます。この

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