Recycleview删除多个item并局部刷新界面

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoshuxgh/article/details/88640270

 效果图

效果图是同事实现的,我是来填坑的o(╥﹏╥)o

管理分类页面功能:新增、编辑、删除(可批量删除)

批量删除完成的时候没有刷新界面,可以在重新请求以下数据刷新界面,那这种的处理方法,大家肯定都知道,不近消耗流量,还体验不好,那么下面 我来实现批量删除后局部刷新界面

大概思路是:将选中item的ID存储到一个集合里面,取消选中的时候移除该item的ID,最后删除成功后,轮询存储选中ID的集合,将里面的ID与RecycleView的集合作比较,Id相等的,将RecycleView的集合中对应的position移除即可。

代码:

    if (b) {
                        if (ids.equals("")) {
                            posList.add(mkManageClassList.get(position).getID());
                            ids = mkManageClassList.get(position).getID() + "|";
                        } else {
                            posList.add(mkManageClassList.get(position).getID());
                            ids = ids + mkManageClassList.get(position).getID() + "|";
                        }
                    } else {
                        ids = ids.replace(mkManageClassList.get(position).getID() + "|", "");
                        for (int i = 0; i < posList.size(); i++) {
                            if (mkManageClassList.get(position).getID() == posList.get(i)) {
                                posList.remove(i);
                            }
                        }
                        if (ids.equals("")) {
                            ids = "";
                            cbAll.setChecked(false);
                            posList.clear();
                        }
                    }
   for (int i = 0; i < posList.size(); i++) {
                            int pos = posList.get(i);
//                            Log.e("posList", posList.get(0) + " pos= " + pos);
                            for(int j=0;j<mkManageClassList.size();j++){
                                if(pos == mkManageClassList.get(j).getID()){
                                    mkManageClassList.remove(j);
                                }
                            }
                        }
                        adapter.notifyItemRangeChanged(0, mkManageClassList.size());
                        posList.clear();
                        adapter.notifyDataSetChanged();
adapter.notifyItemRangeChanged(0, mkManageClassList.size());
posList.clear();
adapter.notifyDataSetChanged();
这是不可缺少的,局部刷新。

猜你喜欢

转载自blog.csdn.net/xiaoshuxgh/article/details/88640270
今日推荐