我正在尝试使用progressBar在许多imageView中加载来自互联网的许多图片。我成功了但是问题所有图像都加载到第一个imageView(作为滑块)。但我不知道要制作它是正确的我的意思是在一个imageView中下载每张图片:
答案 0 :(得分:1)
向DownloaderAsyncTask
构造函数添加参数。在onPostExecute
int mIndex;
public DownloaderAsyncTask(Context context, int index) {
mContext = context;
mIndex = index;
}
protected void onProgressUpdate(Integer... progress) {
Intent intA = new Intent("...");
intA.putExtra("resultCounter", mIndex );
intA.putExtra("int", progress[0]);
context.sendBroadcast(intA);
}
protected void onPostExecute(ByteArrayBuffer result) {
Intent intB = new Intent("....");
intB.putExtra("resultCounter", mIndex );
intB.putExtra("image", result.toByteArray());
context.sendBroadcast(intB);
}
使用新构造函数更改asynctasks的初始化。
for(int i = 0; i < 5; i++) {
DownloaderAsyncTask asyncTask = new DownloaderAsyncTask(getApplicationContext(), i);
asyncTask.execute(links[i]);
}
当您获得progCounter值
时,还要更改为resultCounter标记// Broadcast receiver for PROGRESS BAR
BroadcastReceiver receiveProgress = new BroadcastReceiver(){
public void onReceive(android.content.Context context, Intent intent) {
int progress = intent.getIntExtra("int", 0);
int progCounter = intent.getIntExtra("resultCounter", 0);
}
答案 1 :(得分:1)
我正在开展这样的项目。我使用了这个lazy loader并取得了成功。
答案 2 :(得分:0)
这是你的错误
在 BroadcastReceiver receiveImage
中您正试图从意图中获取 progCounter 的值。
int progCounter = intent.getIntExtra("resultCounter", 0);
但是在您的异步任务中,您没有发送 resultCounter 的任何意图,因此每次尝试获取意图值时,它都会为您提供 0(“resultCounter”,0)< / strong>因为没有意图。