繁体   English   中英

在RecyclerView中更新项目视图

[英]Update an item view in RecyclerView

我有一个RecyclerView ,它正在获取喜欢和不喜欢的物品的列表。 在onClick项目中有一个星形图标,我正在调用它的API,该API返回添加到收藏夹或从收藏夹中删除。 现在我正在尝试更新RecyclerView星形图标

我的任务OnSuccess ,我正在使用此代码更新列表

adapterParcel.notifyItemChanged(position, modelParcelsArrayList);
                        adapterParcel.notifyDataSetChanged();

在我的适配器onBindViewHolder我试图通过此代码更新视图

if (singleModelParcels.is_favouriteParcel()) {
                itemListHolder.rpl_iv_favorite.setBackgroundResource(R.drawable.ic_action_fav_yellow);
            } else {
                itemListHolder.rpl_iv_favorite.setBackgroundResource(R.drawable.ic_action_fav_white);
            }

我无法弄清楚该怎么做才能更新该项目的视图。

notifyDataSetChanged方法刷新recyclerView适配器(即)中的项目。 他们再次进入onBindViewHolder状态。

如果您已经正确地修改了对象以保存fav值(是/ onBindViewHolder ),那么在onBindViewHolder您可以简单地访问该值并设置视图,如下所示:

 @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
   Object object = objectList.get(position);
   if (object.isFav()){
     holder.favIcon.highlight();
   }else{
     holder.favIcon.unhighlight();
   }
}

因此,所有你需要做的就是调用内部的适配器上的notifyDataSetChanged方法和代码onBindViewHolder mthod会为您处理!

在这里检查我创建的类似项目

您也可以通过使用notifyItemChanged实现相同的功能,但是在这种情况下,您将需要在该位置更新实体,这将刷新适配器中的视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM