adapter.notifyItemRemoved出错,求大神解救

qq_21894341 qq_21894341 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在recyclerview里放置了cardview组件,如下:

青岛
济南
南京

然后设置了adapter和滑动监听,滑动会删除组件,当我滑动删除济南后,会出现如下状况:

青岛
南京
南京

但是遍历adapter所使用的list,发现济南这个组件确实被我删除了,不知道是因为什么,下面是源代码


public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
int position = viewHolder.getAdapterPosition();
list.remove(position);
adapter.notifyItemRemoved(position);
for(int i = 0; i < list.size(); i ++) {
Log.d("剩余地址", list.get(i).getCity());
}
}

public class Adapter extends RecyclerView.Adapter<Adaper.ViewHolder> {
// 成员属性
private List<cardview> list;

// 构造方法
public Adapter(List<cardview> list) {
this.list = list;
}

// 成员方法
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// 获取holder
View view = View.inflate(parent.getContext(), R.layout.card_view, null);
ViewHolder holder = new ViewHolder(view);
return holder;
}

@Override
public void onBindViewHolder(ViewHolder viewholder, int i) {
// 构造holder
viewholder.cardviewImage.setImageResource(list.get(i).imageId);
viewholder.cardviewCity.setText(list.get(i).city);
}

@Override
public int getItemCount() {
return this.list.size();
}

// 内部类
public class ViewHolder extends RecyclerView.ViewHolder {
// 成员属性
public ImageView cardviewImage;
public TextView cardviewCity;

// 构造方法
public ViewHolder(View itemView) {
super(itemView);
cardviewImage= (ImageView) itemView.findViewById(R.id.cardview_image);
cardviewCity= (TextView) itemView.findViewById(R.id.cardview_city);
}
}
}
...全文
评论 1
收藏 已收藏
分享
返回顶部
qq_21894341
Android 80,490 成员 91,375 内容