2013-10-04 117 views
3

我有一個帶有自定義ListView的ListFragment。在「onCreateView」我膨脹的觀點:View rootView = inflater.inflate(R.layout.fragment_subst, container, false);。 現在,在「onActivityCreated」我設置適配器和下載一些數據是這樣的:在ListFragment中顯示ProgressDialog

MyAdapter adapter = new MyAdapter(getActivity(), new GetData().execute().get());

setListAdapter(adapter);

Downloadiing需要它的時間,用戶只看到一個白色的頁面的動作條。這是非常不好的,所以我加了一個ProgressDialog:

ProgressDialog dialog = ProgressDialog.show(getActivity(), "Loading...", "Please wait...", true);

MyAdapter adapter = new MyAdapter(getActivity(), new GetData().execute().get());

setListAdapter(adapter);

dialog.dismiss();

但沒有顯示ProgressDialog。究竟是什麼問題?我在展示對話框之前誇大了視圖...

謝謝!

回答

0

我只是修改的代碼之前,使用前onPreExcute()創建全局變量

ProgressDialog dialog; 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     dialog = ProgressDialog.show(getActivity(), "Loading...", "Please wait...", true); 
    } 

onPostExcute隱藏對話框

@Override 
    protected void onPostExecute(String s) { 
     super.onPostExecute(s); 
     dialog.hide(); 
    } 
3

在你的AsyncTask 的GetData

顯示進度對話框中您onPreExecute方法

ProgressDialog dialog = ProgressDialog.show(getActivity(), "Loading...", "Please wait...", true); 

,並駁回onPostExecute對話框。

+0

謝謝,我已經嘗試過這但ProgressDialog僅顯示非常短,並且在顯示ProgressDialog之前,白頁顯示一到兩秒鐘。 – zoom

+0

我發現了另一個非常簡單的解決方案。我把適配器放到了AsyncTask中,現在每件事情都應該如此。不管怎麼說,還是要謝謝你! – zoom