0

ここに画像の説明を入力
View上記のような リストを作成する方法を知っています。ダウンローダを作成しようとしていますが、複数のスレッドが同時にダウンロードされます。
これらThreadの は、 の を使用する必要がsetProgress(..)ありProgressBarます。ただし、アダプタを使用して作成されたプログレス バーを参照する方法がわかりません。さらに、リスナーを追加できるようにするためのキャンセル ボタンもあります。

これで私を助けてください

4

1 に答える 1

1

現在のタスクの進行状況を返すメソッドと、それ自体をキャンセルするメソッドをTask実装Runnableして持つクラスを作成することをお勧めします(キャンセルは、フラグを立てるなどの方法で任意の方法で行うことができます)。次に、通常のスレッドを使用してタスクを開始し (または AsyncTask または のいずれかを使用) 、アイテムとしてアダプタに s を追加すると、次を使用して適切なビューを表示できます。getCurrentProgress()cancel()ExecutorsTask

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

getView()アダプターの方法で。

次に、進行状況を更新する必要がある場合は、内部で進行状況を更新し、UI スレッドTaskを呼び出すだけです。また、インスタンスの新しい進行状況が他のスレッドから見えるようadapter.notifyDataSetChange()にすることも必要です。これは、進行状況インジケーターとして使用することをお勧めします (everyは最新の値を返すため)。TaskAtomicIntegerAtomicInteger.get()

于 2013-08-05T20:15:31.137 に答える