使用recyclerView的notifyItemRemoved()和remove数据的时候出现的

本文讲述了在Android项目中使用RecyclerView显示SDCard图片,并添加长按删除功能时遇到的问题。在调用notifyItemRemoved(position)后出现position错乱导致数组越界,引发程序崩溃。作者尝试了多种解决方法,如删除后重新绑定ViewHolder,但依然存在问题。最终发现错误在于Adapter向Activity传递position时直接使用了for循环的索引i,而非ViewHolder的position。修正为使用ViewHolder的position后,在Dialog中正确处理解决了问题。
摘要由CSDN通过智能技术生成

    在项目当中使用了recyclerView进行sdcard指定路径下面图片的展示,其中参考了鸿洋大神的demo,但是那个gallery的demo里面没有实现长按事件的监听,我在里面加入了长按事件,然后通过dialog提示用户是否删除选中的图片,大致意思如下:


    但是,在使用notifyItemRemoved(position)的时候出现了问题,也就是网上大多数的人都遇到的问题,position错乱,导致remov之后的数组越界,程序崩溃.当时看到这个问题,也明白,因为在使用listView的时候就遇到过了,但是这个问题居然改了大半天,因为开始按照大部分网友分享的方法来,比如remove之后,使用notifItemRemoved来实现动画效果之后再通过

                if (i != mDatas.size()){
                  notifyItemRangeChanged(i, mDatas.size()-i);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值