我的RecyclerView
包含单击删除时的文本和删除按钮特定行将从ArrayList中删除
pending.remove(p);// pending is arraylist
通过调用RecyclerView
中的此函数,在更新Adapter
之后
swap(pending);
public void swap(ArrayList<DownloadingActivity.scheduleListType> newList) {
if (pendingList != null) {
pendingList.clear();
pendingList.addAll(newList);
} else {
pendingList = newList;
}
notifyDataSetChanged();
}
但问题是从ArrayList
待处理成功删除了正确的项目,但在RecyclerView上显示错误的更新。
如果我从阵列列表待处理中删除第二项,但在RecyclerView中更新了
删除的项目是最后一个
重新加载活动时,RecyclerView
中的值正确显示
搜索了很多关于它但未找到任何解决方法
答案 0 :(得分:2)
使用swap()
删除数组列表中的项目并将它们添加回不同的数组列表的Instaead,我建议您在适配器中使用notifyItemRemoved
。所以,你的适配器将如下所示。
RecyclerViewAdapter.java:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
DownloadingActivity.scheduleListType> p = pendingList.get(position);
//....
//....
holder.deleteBnt.setOnClickListner(new View.OnClickListener() {
@Override
public void onClick(View view) {
pendingList.remove(p);
notifyItemRemoved(position)
}
})
}