1.在adpater写上删除方法:

    //  删除数据public void removeData(int position) {lists.remove(position);//删除动画notifyItemRemoved(position);notifyDataSetChanged();//为了数据同步防止错位}

recyclerview的界面如下图,点击删除按钮即可删除对应的数据

在删除的按钮的事件中这样调用:

adapter.removeData(position);

第一个删除肯定是没有问题的,但是说不好第二个删除就会出现问题导致程序崩溃,最常见的错误就是下标越界。

因为博主的点击事件是写在bean里面的,如果你们没有报错和问题就不用继续看了。

为什么会出现下标越界,来做一个数据模拟,假设写在有3个item,分别下标是 0,1,2.

而因为是在bean类中写的点击事件,导致每个位置都定死了,我如果删除了下标为1的,那么现在剩下的了  0,2

,在删除下标为2的就会越界,因为现在下标最大是1,但是bean类并不知情。

出现越界的原因找到了,那就上个解决方法:找一个参照物

没错,参照物,这里的参照物指集合。先上代码后面慢慢道来:

    private List<Integer> currentNumber=new ArrayList<>();//参照物
//这里获取item的长度,然后将每个位置遍历到集合中来。for (int j=0;j<banner.getData().size();j++) {currentNumber.add(j);}
//上面的准备就绪过后,下面的就是再点击删除按钮时要做的事情了。//这里的j是 bean类的下标,导致下标越界的元凶if(currentNumber.contains(j)){int biao=currentNumber.indexOf(j);//下标adapter.removeData(biao);currentNumber.remove(biao);}

因为recycleview的item是有一个长度的,我们把每一个item放入集合中去,在后面的删除某个item我们就去这个集合里面查找,先获取到集合里这个元素的下标,再删除item和集合里这个元素,有了集合的纪录,我们就可以随心所以的想删谁就删谁不用担心下标越界的异常了。

recyclerview删除item,解决下标越界相关推荐

  1. Android 解决RecyclerView删除Item导致位置错乱的问题

    Android 解决RecyclerView删除Item导致位置错乱的问题 参考文章: (1)Android 解决RecyclerView删除Item导致位置错乱的问题 (2)https://www. ...

  2. RecyclerView 删除Item 以及删除整个RecyclerView

    学而时习之,温故而知新. 今天用到了,居然忘记了,好尴尬,这里深夜了也在记录下, 1 删除整个RecyclerView hisList.clear();hisAdapter.notifyDataSet ...

  3. android.support.v7 fragme,打造最强RecyclerView侧滑菜单,长按拖拽Item,滑动删除Item

    前几天写了一片关于RecyclerView滑动删除Item,RecyclerView长按拖拽Item的博客,本来很简单一个使用,阅读量还挺高的,原博客传送门. 今天介绍一个RecyclerView I ...

  4. android recyclerview 横向item 宽度,RecyclerView的item宽度不能全屏显示及线性布局与grid布局切换混乱解决方法...

    1.RecyclerView的Item宽度不能全屏显示 出现这种的原因有两种: 1.第一种是在adapter中加载inflater时parent传入为null 2.如果第一种不行,第二种原因就是在Re ...

  5. 解决ScrollView嵌套RecyclerView出现item显示不全的问题

    解决ScrollView嵌套RecyclerView出现item显示不全的问题 参考文章: (1)解决ScrollView嵌套RecyclerView出现item显示不全的问题 (2)https:// ...

  6. RecyclerView实现Item可拖拽(拖动、删除)

    RecyclerView实现Item可拖拽(拖动.删除) 话不多说,先附上效果图: ItemTouchHelper 这是一个RecyclerView的工具,提供了drag & swipe 的功 ...

  7. recycleView 滑动删除Item,拖拽切换Item,你想了解的都在这儿

    滑动删除Item,拖拽切换Item,你想了解的都在这儿 概述 如果上两篇对RecyclerView介绍后,依然没有引起你的兴趣,那么下面关于RecyclerView的使用我相信一定会让你如获珍宝.直接 ...

  8. 界面无小事(八):RecyclerView增删item

    界面无小事(一): RecyclerView+CardView了解一下 界面无小事(二): 让RecyclerView展示更多不同视图 界面无小事(三):用RecyclerView + Toolbar ...

  9. Android RecyclerViewSwipeDismiss:水平、垂直方向的拖曳删除item

     Android RecyclerViewSwipeDismiss:水平.垂直方向的拖曳删除item RecyclerViewSwipeDismiss是一种支持RecyclerView的水平.垂直 ...

最新文章

  1. Laravel之路——file缓存修改为redis缓存
  2. c++友元函数与友元类
  3. c#语言呈现位置信息,c#实现根据网络IP显示地理位置功能示例
  4. ZkServer服务启动的逻辑-QuorumPeerMain.runFromConfig
  5. Linux下CMAKE编译jsoncpp,使用CMake引入jsoncpp
  6. 重磅!专硕学制改为三年,多所高校发文!
  7. sql oracle 递归查询语句,Oracle使用SQL语句进行递归查询
  8. JSP JAVA 自定义 错误页面(404,505,500)
  9. ActiveMq笔记3-AMQ高可用性理论
  10. L1-028. 判断素数-PAT团体程序设计天梯赛GPLT
  11. Zabbix全攻略(已测试,含客户端教程,适用debian8\centos7)
  12. 机器学习中的正则化(Regularization)
  13. mysql数据库操作常用命令_MySQL数据库操作常用命令小结
  14. 魔方游戏程序设计制作(C语言)
  15. LSM303D磁力计数据读取实验
  16. 基于微信小程序的鲜花销售系统毕业设计源码
  17. 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数
  18. 网站服务器选择什么操作系统,网站服务器选择哪种操作系统比较好
  19. 双11零售迷思:流量漏斗之外,如何才能让电商节更有长期价值?
  20. linux如何查看当前用户以及修改用户角色权限

热门文章

  1. python数据分析方法五种_python数据分析与算法之五 算法
  2. 洛谷P1035题解 [NOIP2002 普及组] 级数求和
  3. 读《DevOps实践指南》笔记二
  4. tm32f429 pcb 原理图工程文件 OPENTX遥控器可用
  5. operate1c语言,operate的第三人称单数和例句
  6. 计算机跨考应用经济学,计算机专业跨考人大经济学复习经验谈
  7. BCI脑机接口10:Concept of Software Interface for BCI systems全文读后感
  8. Python爬虫日记-解释def __init__(self, *args, **kwargs)
  9. C语言每日一练——第83天:爱因斯坦的数学题
  10. 《模拟电子技术基础》课程笔记(二)——课程概要