【问题标题】:Display ProgressDialog in ListFragment在 ListFragment 中显示 ProgressDialog
【发布时间】:2013-10-11 06:16:27
【问题描述】:

我有一个带有自定义 ListView 的 ListFragment。在“onCreateView”中,我正在夸大视图:View rootView = inflater.inflate(R.layout.fragment_subst, container, false);。 现在在“onActivityCreated”中,我正在设置适配器并下载一些数据,如下所示:

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

setListAdapter(adapter);

下载需要时间,用户只能看到带有 ActionBar 的白页。这很糟糕,所以我添加了一个 ProgressDialog:

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

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

setListAdapter(adapter);

dialog.dismiss();

但没有显示 ProgressDialog。究竟是什么问题?在显示对话框之前,我已经放大了视图...

谢谢!

【问题讨论】:

    标签: android listview dialog fragment progressdialog


    【解决方案1】:

    在你的 AsyncTask GetData

    在您的 onPreExecute 方法中显示进度对话框

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

    并在 onPostExecute 中关闭对话框。

    【讨论】:

    • 谢谢,我已经试过了,但是 ProgressDialog 只显示很短,在显示 ProgressDialog 之前,白页会显示一到两秒钟。
    • 我找到了另一个非常简单的解决方案。我将适配器放入 AsyncTask 中,现在一切正常。还是谢谢!
    【解决方案2】:

    我刚刚修改了之前的代码使用创建全局变量

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 2012-08-13
      • 1970-01-01
      • 2012-04-06
      • 1970-01-01
      相关资源
      最近更新 更多