2012-02-07 77 views
5

我一直在尋找今天整天試圖找到一些示例代碼或教程如何創建一個進度盤旋,而任務正在完成。完成此任務的時間會有所不同,並且有很多示例使用Thread.sleep(xxxx)使其繞行,但效率不高。這裏是我想要做的,我想在單擊按鈕之後加載使用JSON從Web服務填充的ListView。該列表視圖加載完美,但根據尺寸大概需要5-10秒才能加載,所以我想在用戶等待時顯示旋轉旋轉。有人可以分享一些關於如何實現這一目標的示例代碼嗎?android asyncTask對話框圈

謝謝

+0

我的回答可以幫助你嗎? – brian 2012-02-07 03:51:49

+0

如果你找到你的答案。請檢查一個可接受的答案。 – brian 2012-02-07 07:55:05

+0

請在我的答案左邊打勾 – brian 2012-02-09 09:38:25

回答

5

你可以試試下面的代碼,

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();打電話。

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

謝謝Brian和大家......這非常有幫助。我把它們放在一起.. – 2012-02-08 04:59:18

+2

然後請打勾。 – brian 2012-02-08 05:44:05

+0

關於ProgressDialog(Activity.this);在Load類中給出了一個錯誤。當然。我們必須使用什麼? – 2013-12-31 20:14:43

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可以調用assync這樣

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