0

在此处输入图像描述
我知道如何使用View上面显示的列表创建列表。我正在尝试创建一个下载器,并且将同时下载多个线程。
这些Threads 需要使用setProgress(..)ProgressBar。但是,我不知道如何在使用适配器创建这些进度条后引用它们。并且,通过扩展,取消按钮,以便我可以添加侦听器。

请在这件事上给予我帮助

4

1 回答 1

1

我建议您创建一个Task类,该类将实现Runnable并具有一个方法getCurrentProgress(),该方法将返回当前任务的进度和一个cancel()取消自身的方法(可以通过提高标志或任何其他方式以任何所需的方式完成取消)。然后您可以使用普通线程(或使用 AsyncTask,或其中之一Executors)启动任务并将您Task的 s 作为项目添加到适配器,然后您可以使用显示适当的视图

Task task = getItem(position);
progressBar.setProgress(task.getCurrentProgress());

在您getView()的适配器方法中。

然后,当您需要更新进度时,您只需要在内部更新进度Task并调用adapter.notifyDataSetChange()UI 线程即可。您还需要做的是确保您在Task实例中的新进度可以从其他线程中看到,为此我建议您使用AtomicInteger进度指示器(因为每个都AtomicInteger.get()返回最新值)。

于 2013-08-05T20:15:31.137 回答