我如何找到这些ProgressBar

时间:2013-08-05 19:31:22

标签: android android-progressbar listview-adapter

enter image description here
我知道如何使用View创建一个列表,如上所示。我正在尝试创建一个下载程序,同时会有多个线程下载 这些Thread需要使用setProgress(..)的{​​{1}}。但是,我不知道如何使用适配器创建这些进度条。并且,通过扩展,取消按钮,以便我可以添加监听器。

请帮我解决这个问题

1 个答案:

答案 0 :(得分:1)

我建议你创建Task类,它将实现Runnable并有一个方法getCurrentProgress(),它将返回当前任务的进度和方法cancel()取消它自己(取消可以任何所需的方式,通过举旗或任何其他方式)。然后你可以使用普通线程(或使用AsyncTask,或Executors之一)启动任务,并将Task添加到适配器作为项目,然后您可以使用

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

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

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