列表视图加载数据时显示微调器

时间:2015-04-29 14:36:53

标签: java android listview

我正在收集大量文件,并在列表视图中显示它们。大多数工作负载都在适配器的构造函数中。有没有办法可以使用Asynctask并显示一个微调器,直到收集到所有数据。这是否意味着我必须在doInBackground方法中实例化适配器的构造函数?我该怎么做呢?

此外,此列表包含在选项卡中。我正在使用viewpager。因此,由于在构造函数中完成了工作,滚动到此特定选项卡是一个主要的断断续续。

2 个答案:

答案 0 :(得分:0)

您可以在启动AsyncTask之前使用空列表实例化适配器。在AsyncTask的onPostExecute中,您可以使用数据更新列表,然后调用适配器的notifyDataSetChange方法。 您也可以添加一个ProgressBar并将其隐藏在onPostExecute中。

答案 1 :(得分:0)

如果我的问题正确,那么您正在寻找ProgressDialog。这是一个例子:

class yourClass extends AsyncTask<String, String, String> {


        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog.setMessage("Wait for list to fill up...");
            showDialog();
        }

        protected String doInBackground(String... args) {

            //Fill in your code to populate the list
        }
        protected void onPostExecute(String file_url) {
             hideDialog();
        }
}

    private void showDialog() {
        if (!pDialog.isShowing())
            pDialog.show();
    }

    private void hideDialog() {
        if (pDialog.isShowing())
            pDialog.dismiss();
    }

别忘了像这样声明你的pDialog:private ProgressDialog pDialog;