2013-08-05 39 views
0

enter image description here
我知道如何創建一個像上面顯示的View列表。我試圖創建一個下載器,並且會有多個線程同時下載。
這些Thread需要使用ProgressBarsetProgress(..)。但是,我不知道如何使用適配器創建這些進度條。並且,通過擴展,取消按鈕,以便我可以添加監聽器。我如何找到這些ProgressBar

請幫我這個

回答

1

我建議你創建Task類,這將實現Runnable,並有一個方法getCurrentProgress(),這將返回當前任務的進度和方法cancel()取消本身(取消可以任何希望的方式完成,舉起旗幟或任何其他方式)。然後,你可以使用普通的線程啓動任務(或使用的AsyncTask,或Executors之一),並添加您Task s到適配器作爲一個項目,那麼你就可以在你的getView()方法使用

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

顯示相應的視圖的適配器。

然後,當您需要更新進度時,您只需更新Task中的進度並在UI線程上調用adapter.notifyDataSetChange()即可。你還需要做的是確保你在Task實例中的新進度可以從其他線程看到,因爲我建議你使用AtomicInteger作爲進度指示器(因爲每個AtomicInteger.get()都返回最新值)。

+0

因此'adapter.notifyDataSetChange()'會導致所有'Views'被自動刷新並顯示進度? :) –

+0

是的,沒錯。 – Desert

+0

好的,我會努力工作並回復你:) –