【问题标题】:Android:How to add data to the ListView while downloading from the webAndroid:如何在从网络下载时将数据添加到 ListView
【发布时间】:2012-03-14 17:05:05
【问题描述】:

我正在从网上下载一些数据并将它们显示到一个列表中。

现在我想在下载该项目时将其添加到列表中,这意味着如果整个数据有 10 个项目,如果已​​下载一个项目,我希望将该数据添加到 ListView 中,以便该列表变得更具吸引力。

我正在使用 AsyncTask 下载数据,并在后期后台使用自定义适配器将收集的数据绑定到列表中。

【问题讨论】:

  • 让异步任务将每个项目作为进度发布,如publishProgress(myNewItem),并在onProgressUpdate 中,将所述项目添加到您的listAdapter

标签: android android-listview android-asynctask adapter


【解决方案1】:

考虑使用Loaders。您可能需要包含 compatibility library 以使用该 API 并仍支持 3.0 之前的设备。

【讨论】:

  • 我会检查一下。但我想使用我现有的代码。任何使用 asynctask 的想法
【解决方案2】:

使用这种方法会帮助你做到这一点。

通过

加载你的异步任务
new MyAsynTaskname().execute(myarguments);

之后,让你的 Asyntask 类似于

 private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
     protected Long doInBackground(URL... urls) {
         int count = urls.length;
         long totalSize = 0;
         for (int i = 0; i < count; i++) {
             totalSize += Downloader.downloadFile(urls[i]);
             publishProgress((int) ((i / (float) count) * 100));
         }
         return totalSize;
     }

     protected void onProgressUpdate(Integer... progress) {
         setProgressPercent(progress[0]);
     }

     protected void onPostExecute(Long result) {
         showDialog("Downloaded " + result + " bytes");
     }
 }

在“onProgressUpdate”任务中处理您当前的下载过程。

关注这个Android Asyntask

【讨论】:

  • 我的问题是如何一项一项地添加项目。下载第二个时添加一个。
  • 你要我给你密码吗?只需使用处理程序设置时间间隔。请点击此链接link
猜你喜欢
  • 2010-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多