recyclerview删除item,解决下标越界
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,解决下标越界相关推荐
- Android 解决RecyclerView删除Item导致位置错乱的问题
Android 解决RecyclerView删除Item导致位置错乱的问题 参考文章: (1)Android 解决RecyclerView删除Item导致位置错乱的问题 (2)https://www. ...
- RecyclerView 删除Item 以及删除整个RecyclerView
学而时习之,温故而知新. 今天用到了,居然忘记了,好尴尬,这里深夜了也在记录下, 1 删除整个RecyclerView hisList.clear();hisAdapter.notifyDataSet ...
- android.support.v7 fragme,打造最强RecyclerView侧滑菜单,长按拖拽Item,滑动删除Item
前几天写了一片关于RecyclerView滑动删除Item,RecyclerView长按拖拽Item的博客,本来很简单一个使用,阅读量还挺高的,原博客传送门. 今天介绍一个RecyclerView I ...
- android recyclerview 横向item 宽度,RecyclerView的item宽度不能全屏显示及线性布局与grid布局切换混乱解决方法...
1.RecyclerView的Item宽度不能全屏显示 出现这种的原因有两种: 1.第一种是在adapter中加载inflater时parent传入为null 2.如果第一种不行,第二种原因就是在Re ...
- 解决ScrollView嵌套RecyclerView出现item显示不全的问题
解决ScrollView嵌套RecyclerView出现item显示不全的问题 参考文章: (1)解决ScrollView嵌套RecyclerView出现item显示不全的问题 (2)https:// ...
- RecyclerView实现Item可拖拽(拖动、删除)
RecyclerView实现Item可拖拽(拖动.删除) 话不多说,先附上效果图: ItemTouchHelper 这是一个RecyclerView的工具,提供了drag & swipe 的功 ...
- recycleView 滑动删除Item,拖拽切换Item,你想了解的都在这儿
滑动删除Item,拖拽切换Item,你想了解的都在这儿 概述 如果上两篇对RecyclerView介绍后,依然没有引起你的兴趣,那么下面关于RecyclerView的使用我相信一定会让你如获珍宝.直接 ...
- 界面无小事(八):RecyclerView增删item
界面无小事(一): RecyclerView+CardView了解一下 界面无小事(二): 让RecyclerView展示更多不同视图 界面无小事(三):用RecyclerView + Toolbar ...
- Android RecyclerViewSwipeDismiss:水平、垂直方向的拖曳删除item
Android RecyclerViewSwipeDismiss:水平.垂直方向的拖曳删除item RecyclerViewSwipeDismiss是一种支持RecyclerView的水平.垂直 ...
最新文章
- Laravel之路——file缓存修改为redis缓存
- c++友元函数与友元类
- c#语言呈现位置信息,c#实现根据网络IP显示地理位置功能示例
- ZkServer服务启动的逻辑-QuorumPeerMain.runFromConfig
- Linux下CMAKE编译jsoncpp,使用CMake引入jsoncpp
- 重磅!专硕学制改为三年,多所高校发文!
- sql oracle 递归查询语句,Oracle使用SQL语句进行递归查询
- JSP JAVA 自定义 错误页面(404,505,500)
- ActiveMq笔记3-AMQ高可用性理论
- L1-028. 判断素数-PAT团体程序设计天梯赛GPLT
- Zabbix全攻略(已测试,含客户端教程,适用debian8\centos7)
- 机器学习中的正则化(Regularization)
- mysql数据库操作常用命令_MySQL数据库操作常用命令小结
- 魔方游戏程序设计制作(C语言)
- LSM303D磁力计数据读取实验
- 基于微信小程序的鲜花销售系统毕业设计源码
- 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数
- 网站服务器选择什么操作系统,网站服务器选择哪种操作系统比较好
- 双11零售迷思:流量漏斗之外,如何才能让电商节更有长期价值?
- linux如何查看当前用户以及修改用户角色权限
热门文章
- python数据分析方法五种_python数据分析与算法之五 算法
- 洛谷P1035题解 [NOIP2002 普及组] 级数求和
- 读《DevOps实践指南》笔记二
- tm32f429 pcb 原理图工程文件 OPENTX遥控器可用
- operate1c语言,operate的第三人称单数和例句
- 计算机跨考应用经济学,计算机专业跨考人大经济学复习经验谈
- BCI脑机接口10:Concept of Software Interface for BCI systems全文读后感
- Python爬虫日记-解释def __init__(self, *args, **kwargs)
- C语言每日一练——第83天:爱因斯坦的数学题
- 《模拟电子技术基础》课程笔记(二)——课程概要