2012-02-07 38 views
5

Tôi đã tìm kiếm cả ngày hôm nay để tìm một số mã ví dụ hoặc hướng dẫn cách tạo tiến trình vòng quanh trong khi nhiệm vụ đang được thực hiện. Thời gian cho nhiệm vụ này hoàn thành là khác nhau cho phù hợp và có rất nhiều mẫu ra có đang sử dụng Thread.sleep (xxxx) làm cho nó vòng quanh nhưng điều này là không hiệu quả. Đây là những gì tôi muốn làm, tôi muốn tải một ListView được điền từ một dịch vụ web bằng cách sử dụng JSON sau khi một nút được nhấn. Chế độ xem danh sách đang tải lên hoàn toàn tốt, nhưng phải mất khoảng 5-10 giây để tải lên tùy thuộc vào kích thước, vì vậy tôi muốn hiển thị vòng quay xoay vòng trong khi người dùng đang đợi. Ai đó có thể xin vui lòng chia sẻ một số mã mẫu về cách để đạt được điều đó?Hộp thoại android asyncTask Vòng tròn

Cảm ơn bạn

+0

câu trả lời của tôi giúp cho bạn? – brian

+0

Nếu bạn tìm thấy câu trả lời. plz kiểm tra một câu trả lời được chấp nhận. – brian

+0

xin vui lòng đánh dấu vào bên trái của tôi – brian

Trả lời

5

Bạn có thể thử đoạn mã sau,

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(); để gọi.

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

Cảm ơn Brian và tất cả mọi người ... Điều này rất hữu ích. Tôi đã nhận tất cả cùng nhau .. –

+2

Sau đó, hãy đánh dấu vào bên trái. – brian

+0

Về ProgressDialog (Activity.this); trong lớp Load cho một lỗi. Tất nhiên. Chúng ta phải sử dụng cái gì? –

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 có thể gọi assync như thế này

LoadAssync mAsyync=new LoadAssync(); 
mAsyync.execute(null); 
Các vấn đề liên quan