更新RecyclerView中的项目视图
我有一个RecyclerView
这是得到喜爱和Unfavourite项目的列表。在项目onClick中有一个星形图标,我打电话给一个API,该API返回添加到收藏夹或从收藏夹中删除。 我现在想以更新RecyclerView
更新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);
}
我无法弄清楚该怎么做才能更新该项目的视图。
0123〃方法刷新recyclerView适配器中的项目,他们再次通过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方法,并且方法中的代码将为你处理!
检查由我创建了一个类似的项目,here
您还可以通过使用notifyItemChanged达到相同的,但在那种情况下,你将需要在该位置这将刷新适配器视图更新实体。
我正在调用adapterParcel.notifyItemChanged(position,modelParcelsArrayList); – NarenderNishad
但是你是否正在修改modelParcelArraylist中该实体的实体,该实体会反映出你的视图 – Aditi
我正尝试在视图中使用布尔值对其进行修改。 – NarenderNishad
我已经在我的适配器代码中做了这个。请参阅 – NarenderNishad
,您正在调用notifyItemChanged方法,然后再调用notifydatachanged方法。所以在技术上你不需要它们,试试这个,在列表中更新模型中的值(你用RV适配器绑定的列表),并且一旦你改变了列表中的值,就调用'notifyDataSetChaged'。但请记住,您必须修改列表中的项目。 – MadScientist