我需要提示如何通知网络后已更改的项目..
我有一个带有项目的RecylerView,每个项目都有一个图像, 在项目绑定我正在下载图像,成功下载图像后我只通知相关项目而不是整个适配器。 但是RecylerView中的项目可以移动,所以我不能使用项目的位置。
我该怎么办?
答案 0 :(得分:0)
我创建了一个在实际解码位图之前返回每个视图的适配器。我使用了AsyncTask:
private class SetImageTask extends AsyncTask<ImageView, Integer, Bitmap> {
private ImageView mImageView;
private String mImagePath;
@Override
protected Bitmap doInBackground(ImageView... params) {
mImageView = params[0];
mImagePath = (String) mImageView.getTag();
return BitmapFactory.decodeFile(mImagePath);
}
@Override
protected void onPostExecute(Bitmap bitmap) {
if (mImagePath != (mImageView.getTag())){
return;
}
mImageView.setImageBitmap(bitmap);
mImageView.invalidate();
}
}
您可以使用View.setTag()
设置所需的任何对象。我确定你可以修改它以便为你工作。
编辑:
这是我在getView()
中启动AsyncTask的地方:
holder.image.setTag(imagePath);
new SetImageTask().execute(holder.image);