在联网之后更新RecyclerView中的项目

时间:2015-11-23 07:24:26

标签: android android-recyclerview

我需要提示如何通知网络后已更改的项目..

我有一个带有项目的RecylerView,每个项目都有一个图像, 在项目绑定我正在下载图像,成功下载图像后我只通知相关项目而不是整个适配器。 但是RecylerView中的项目可以移动,所以我不能使用项目的位置。

我该怎么办?

1 个答案:

答案 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);