我知道如何使用View
上面显示的列表创建列表。我正在尝试创建一个下载器,并且将同时下载多个线程。
这些Thread
s 需要使用setProgress(..)
的ProgressBar
。但是,我不知道如何在使用适配器创建这些进度条后引用它们。并且,通过扩展,取消按钮,以便我可以添加侦听器。
请在这件事上给予我帮助
我知道如何使用View
上面显示的列表创建列表。我正在尝试创建一个下载器,并且将同时下载多个线程。
这些Thread
s 需要使用setProgress(..)
的ProgressBar
。但是,我不知道如何在使用适配器创建这些进度条后引用它们。并且,通过扩展,取消按钮,以便我可以添加侦听器。
请在这件事上给予我帮助
我建议您创建一个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()
返回最新值)。