2013-10-04 54 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