![](/img/trans.png)
[英]Update RecyclerView view after adding a new item to room database
[英]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.