adapter.notifyItemRemoved出错,求大神解救

qq_21894341 2015-12-23 10:38:45
我在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);
}
}
}
...全文
262 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
哦_也好 2017-06-15
  • 打赏
  • 举报
回复
快速删除还是有问题 终极解决办法 http://blog.csdn.net/iamdingruihaha/article/details/73274010

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧