View
上記のような
リストを作成する方法を知っています。ダウンローダを作成しようとしていますが、複数のスレッドが同時にダウンロードされます。
これらThread
の は、 の を使用する必要がsetProgress(..)
ありProgressBar
ます。ただし、アダプタを使用して作成されたプログレス バーを参照する方法がわかりません。さらに、リスナーを追加できるようにするためのキャンセル ボタンもあります。
これで私を助けてください
View
上記のような
リストを作成する方法を知っています。ダウンローダを作成しようとしていますが、複数のスレッドが同時にダウンロードされます。
これらThread
の は、 の を使用する必要がsetProgress(..)
ありProgressBar
ます。ただし、アダプタを使用して作成されたプログレス バーを参照する方法がわかりません。さらに、リスナーを追加できるようにするためのキャンセル ボタンもあります。
これで私を助けてください
現在のタスクの進行状況を返すメソッドと、それ自体をキャンセルするメソッドをTask
実装Runnable
して持つクラスを作成することをお勧めします(キャンセルは、フラグを立てるなどの方法で任意の方法で行うことができます)。次に、通常のスレッドを使用してタスクを開始し (または AsyncTask または のいずれかを使用) 、アイテムとしてアダプタに s を追加すると、次を使用して適切なビューを表示できます。getCurrentProgress()
cancel()
Executors
Task
Task task = getItem(position);
progressBar.setProgress(task.getCurrentProgress());
getView()
アダプターの方法で。
次に、進行状況を更新する必要がある場合は、内部で進行状況を更新し、UI スレッドTask
を呼び出すだけです。また、インスタンスの新しい進行状況が他のスレッドから見えるようadapter.notifyDataSetChange()
にすることも必要です。これは、進行状況インジケーターとして使用することをお勧めします (everyは最新の値を返すため)。Task
AtomicInteger
AtomicInteger.get()