版权声明:本文为博主原创文章,未经博主允许不得转载。 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(); 这是不可缺少的,局部刷新。