我知道如何創建一個像上面顯示的View
列表。我試圖創建一個下載器,並且會有多個線程同時下載。
這些Thread
需要使用ProgressBar
的setProgress(..)
。但是,我不知道如何使用適配器創建這些進度條。並且,通過擴展,取消按鈕,以便我可以添加監聽器。我如何找到這些ProgressBar
請幫我這個
我知道如何創建一個像上面顯示的View
列表。我試圖創建一個下載器,並且會有多個線程同時下載。
這些Thread
需要使用ProgressBar
的setProgress(..)
。但是,我不知道如何使用適配器創建這些進度條。並且,通過擴展,取消按鈕,以便我可以添加監聽器。我如何找到這些ProgressBar
請幫我這個
我建議你創建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()
都返回最新值)。
因此'adapter.notifyDataSetChange()'會導致所有'Views'被自動刷新並顯示進度? :) –
是的,沒錯。 – Desert
好的,我會努力工作並回復你:) –