首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android SortedList拖拽和重新排序项目抛出IndexOutOfBoundsException:检测到不一致。无效的视图持有者适配器positionViewHolde

Android SortedList是Android Support Library中提供的一个用于排序和更新列表数据的实用类。它提供了一种方便的方式来管理列表数据,包括添加、删除、更新和移动数据项。

当使用Android SortedList进行拖拽和重新排序时,有时可能会遇到IndexOutOfBoundsException异常,提示"检测到不一致。无效的视图持有者适配器positionViewHolder"。这个异常通常发生在RecyclerView使用SortedList作为数据源时,当用户拖拽某个项并重新排序时,出现了数据项与视图不一致的情况。

出现这个异常的原因可能是由于拖拽和重新排序过程中,RecyclerView的Adapter没有及时更新视图导致的。解决这个问题的一种方法是在拖拽和重新排序时,及时通知Adapter进行数据项的更新,保持数据和视图的一致性。

以下是一些解决该异常的方法和建议:

  1. 确保在进行拖拽和重新排序时,及时更新SortedList中的数据。可以通过监听拖拽和排序事件,在对应的回调中更新数据集合,并调用Adapter的相关方法通知数据变化。
  2. 在更新数据后,调用RecyclerView的Adapter的notifyDataSetChanged()方法或对应的notifyItemXXX()方法,通知RecyclerView进行视图的更新。
  3. 检查拖拽和排序过程中是否有其他异常或错误导致数据和视图不一致。可以通过日志或调试工具进一步排查问题。

对于Android SortedList拖拽和重新排序的项目,以下是一些适用的腾讯云产品和推荐的链接:

  • 数据库存储:腾讯云云数据库MySQL,提供可靠的云端数据库服务,可用于存储和管理项目的数据。链接:https://cloud.tencent.com/product/cdb
  • 移动开发:腾讯云移动推送服务,用于向移动设备发送推送通知,可用于实现拖拽和重新排序时的实时更新通知。链接:https://cloud.tencent.com/product/tps
  • 云原生:腾讯云云原生应用平台,提供一站式的云原生解决方案,可用于构建和部署拖拽和重新排序项目的应用。链接:https://cloud.tencent.com/solution/cloud-native 请注意,以上仅是腾讯云提供的一些适用产品,其他云计算品牌商也有类似的产品可供选择。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java集合源码分析(二):List与AbstractList

; sort():对集合中数据进行排序。...这是个多态方法,可以选择是否从指定下标开始,默认从下标为0元素开始迭代; 视图类 SubList RandomAccessSubList: subList():获取视图类,会自动根据实现类是否继承...一次调用add(int,E)或remove(int)不得在此字段中添加不超过一个,否则迭代器(列表迭代器)将抛出虚假ConcurrentModificationExceptions。...如果不相等,说明迭代器创建以后,集合结构被修改了,这个时候再去进行迭代可能会出现错误(比如少遍历一个,多遍历一个),因此检测到后会直接抛出 ConcurrentModificationException...但是基于下标的调用会在默认参数基础上加上步长,以实现对“视图操作,这是适配器模式思想一种体现。

33920

浅谈RecyclerView性能优化

mAttachedScrap:只保存重新布局时从RecyclerView分离item无效、未移除、未更新holder。...mChangedScrap:只会负责保存重新布局时发生变化item无效、未移除holder。...(3) 使用DiffUtil、SortedList进行局部增量刷新,提高刷新效率。上面讲传入payload原理一样,这两个是Android默认提供给我们使用两个封装类。...详细使用方法可参考XUI中DiffUtil局部刷新 XUI中SortedList自动数据排序刷新 中代码。 2.合理设置RecyclerViewPool大小。...我是xuexiangjys,一枚热爱学习,爱好编程,勤于思考,致力于Android架构研究以及开源项目经验分享技术up主。获取更多资讯,欢迎微信搜索公众号:【我Android开源之旅】

1.8K10
  • 揭开RecyclerView庐山真面目

    谷歌在Android L中新增了RecyclerView,是一种新视图组,目标是为任何基于适配器视图提供相似的渲染方式。...使用RecyclerView开发项目结构大致如下图所示: ?...回收或重用一个View时候,LayoutManager会向适配器请求新数据来替换旧数据,这种机制避免了创建过多View频繁调用findViewById方法。...使用时需要重写以下两个主要方法: onCreateViewHolder:用来展现视图和它持有者。 onBindViewHolder:主要用来把数据绑定到视图上。...ItemAnimator:条目增加删除时重新排序所产生动画。 二、RecyclerView示例 上面说了这么多,估计还是很迷糊,那么接下来通过一个简单示例来进一步学习。

    1.8K80

    Oracle 错误总结及问题解决 ORA「建议收藏」

    秒),抛出此错误。...: 请重新对其编译 ORA-02108: PCC: 无效描述符传送给运行时库 ORA-02109: PCC: 不一致主高速缓存 (超出位置引用范围) ORA-02110: PCC: 不一致主高速缓存...ORA-12005: 不能安排过去时间自动刷新 ORA-12006: 具有相同 user.name 实体化视图已经存在 ORA-12007: 实体化视图重新使用参数不一致 ORA-12008: 实体化视图刷新路径中存在错误...上实体化视图日志已有主键 ORA-12026: 检测到无效过滤器列 ORA-12027: 过滤器列重复 ORA-12028: 主体站点 不支持实体化视图类型 ORA-12029: LOB 列不能用作过滤器列..., 无法进行备用数据库恢复 ORA-16823: 重做传输模式与当前操作不兼容 ORA-16824: 检测到数据库快速启动故障转移其它警告 ORA-16825: 检测到数据库快速启动故障转移其它错误

    21.5K20

    .NET中泛型集合

    ,运行时会导致类型不一致安全性问题。...SortedList SortedList是另一个支持排序关联性集合。但是不同地方在于,SortedList实际是将数据存存储在数组中。...如果要创建一个排序字典,SortedList将被有效地填充,想象一下保持List排序步骤,你会发现向列表末尾添加单项是廉价(若忽略数组扩充的话将为O(1)),而随机添加项则是昂贵,因为涉及复制已有项...但SortedList公开集合实现了IList,因此可以使用排序键索引有效地访问条目。 我不想因为谈论了这么多关于复杂度内容而给你造成太大困扰。如果不是海量数据,则可不必担心所使用实现。...代码清单B-2 通过视图观察排序集中改变 var baseSet = new SortedSet { 1, 5, 12, 20, 25 }; var view = baseSet.GetViewBetween

    18620

    悬浮窗开发设计实践

    悬浮窗设计目标良好接口设计,可以设置各种自定义视图,支持拖动拖拽吸附到边缘。强大Api方法傻瓜式调用链路。...3.3 应用悬浮窗应用内悬浮窗实现流程1.获取WindowManager;2.创建悬浮View;3.设置悬浮View拖拽事件;4.添加View到WindowManager中对于应用悬浮窗来说,Android...至此,整个添加视图操作解析完毕。...而Android 8.0对系统API行为做了修改,包括使用SYSTEM_ALERT_WINDOW权限应用无法再使用一下窗口类型来在其他应用窗口上方显示提醒窗口:如果需要实现在其他应用窗口上方显示提醒窗口...调试中发现问题通话界面按home键,之前activity销毁了,日志发现走了onDestroy,重新点击app图标,MainActivity相关页面重新onCreate(相当于重新启动app了)。

    2.4K40

    android全局监控click事件四种方式(小结)

    以下是代理接口内置监听适配器,全局监听接口需要实现IProxyClickListener并设置到内置适配器WrapClickListener里 public interface IProxyClickListener...因为对于像AbsListView或RecyclerView直接子 View 是需要强制重新绑定代理,因为它们复用机制可能被重新设置了监听。...然而AbsListViewItem点击无效,因为它点击事件不是通过 onClick 实现,除非不是用 setItemOnClick 而是自己绑定 click 事件。...= null) { //TODO 这里处理通用点击事件,host 即为相应被点击 View. } } } 以上实现比较巧妙,在监测到window上全局视图树发生变化后递归给所有的...具体更多行为监控请参考项目InteractionHook 目前还在持续开发中。 以上就是本文全部内容,希望对大家学习有所帮助。

    5.3K21

    【译】LiveData三连

    这种行为可以防止内存泄漏,确保应用程序不会做更多无效工作。...在我们例子中,视图模型从UserRepository类中获得其返回值,该类保留了一个LiveData实例,该实例包裹着一个数据持有者FollowStatus。...没有完美的解决方案,要由你团队来选择最适合你方法,平衡健壮性、简单性整个项目的一致性。...When NOT to Use LiveData 如果你熟悉Android开发,我毫不怀疑你已经听说过架构组件,甚至可能在你项目中使用了它们。...LiveData被特意创建为一个数据持有者,通过配置变化来保持数据,充分利用它生命周期意识会给你Android项目带来很多好处,但期望超过它所能提供,会让你陷入用勺子吃牛排境地 :) 编码愉快

    1.7K20

    JeecgBoot 2.4.2 积木报表版本发布,基于 Spring Boot 低代码平台

    项目介绍 JeecgBoot是一款基于代码生成器低代码平台!...Online视图去除增强配置按钮 Online 树形列表支持滚动条 Online功能测试数据默认排序改成id Online popup支持翻页多选 Online文件上传上传失败提示并删除无效预览 【Online...表字段persist修改一下 issues/I281X6 online 代码生成vue页面online功能测试中不一致。...导入导出等),基本满足80%项目需求 简易Excel导入导出,支持单表导出一对多表模式导出,生成代码自带导入导出功能 集成简易报表工具,图像报表和数据导出非常方便,可极其方便生成图形报表、pdf、...常用选择组件 │ └─异步树table │ └─接口模拟测试 │ └─表格合计示例 │ └─异步树列表示例 │ └─一对多JEditable │ └─JEditable组件示例 │ └─图片拖拽排序

    2K30

    史上最全 DB2 错误代码大全

    ”所以不能指定优化提示 +30100 01558 分布式协议错误被检测到,提供原来SQLCODESQLSTATE -007 42601 SQL语句中由非法字符 -010 42603 字符串常量非正常终止...42802 待插入数值个数于被插入行中列数不相等 -118 42902 数据修改语句(UPDATE或DELETE)FROM语句中视图命名不合法 -119 42803 HAVING语句中列表与...要改变源函数,必须删除该源函数并重新建立他 -148 42809 RENAMEALTER无法执行。RENAME不能对视图或者活动RI.ST表重新命名。...-157 42810 必须在FOREIGN KEY语句中指定一个表名 -158 42811 视图选择列表中列不相匹配 -159 42089 无效DROP或COMMENT ON语句 -160 42813...-805 51002 在计划中没有发现DBRM或程序包名 -807 23509 对已指定环境连接,该程序包不可用 -808 08001 CONECT语句与程序中第一个CONNECT语句不一致 -

    4.6K30

    DB2错误代码_db2错误码57016

    ”所以不能指定优化提示 +30100 01558 分布式协议错误被检测到,提供原来SQLCODESQLSTATE -007 42601 SQL语句中由非法字符 -010 42603 字符串常量非正常终止...42802 待插入数值个数于被插入行中列数不相等 -118 42902 数据修改语句(UPDATE或DELETE)FROM语句中视图命名不合法 -119 42803 HAVING语句中列表与...要改变源函数,必须删除该源函数并重新建立他 -148 42809 RENAMEALTER无法执行。RENAME不能对视图或者活动RI.ST表重新命名。...-157 42810 必须在FOREIGN KEY语句中指定一个表名 -158 42811 视图选择列表中列不相匹配 -159 42089 无效DROP或COMMENT ON语句 -160 42813...-805 51002 在计划中没有发现DBRM或程序包名 -807 23509 对已指定环境连接,该程序包不可用 -808 08001 CONECT语句与程序中第一个CONNECT语句不一致 -

    2.6K10

    Android 知识简记:资深架构师带你快速回顾Android各种知识!

    1.分配内存2.初始化3.将instance指向分配内存空 3.volatile可以禁止指令重排序,确保先执行2,后执行3 wait sleep sleep 是 Thread 静态方法,可以在任何地方调用...性能会明显优于 synchronized 可重入锁 定义:已经获取到锁后,再次调用同步代码块/尝试获取锁时不必重新去申请锁,可以直接执行相关代码 ReentrantLock synchronized...,不一致时反序列化回失败 Parcelable :Android 序列化方式,适用于组件通信数据传递,性能高,因为不像 Serializable 一样有大量反射操作,频繁 GC Binder Android....性能优化.Android前沿技术,高级UI、Gradle、RxJava、小程序、Hybrid、 移动架构师专题项目实战环节、React Native等技术教程!)。...“寒冬未过”,阿里P9架构分享Android必备技术点,让你offer拿到手软! 毕业3年,我是如何从年薪10W拖拽工程师成为30W资深Android开发者!

    87930

    Java Web学习路径Java编程所需工具及知识JVM基本结构SSH框架设计模式之间关系

    作为程序员可以在任意位置手动抛出异常; throws 用于在方法上标识要抛出异常,抛出异常交由调用者处理; 19、ArrayListVector、LinkedList区别?...1.它是基于组件技术,全部应用对象,无论控制器视图,还是业务对象之类都是java组件,并且Spring提供其他基础结构紧密集成。...Jsp视图解析器默认使用jstl。 56、请介绍线程五种状态 第一、创建状态。在生成线程对象,并没有调用该对象start方法,这是线程处于创建状态手写字符串反转冒泡排序; 第二、就绪状态。...58、什么是数据库脏读,不可重复读,幻觉读 脏读又称无效数据读出。一个事务读取另外一个事务还没有提交数据叫脏读。...分页与排序问题一般情况下,列表分页时需要按照指定字段进行排序。在单库单表情况下,分页排序也是非常容易。但是,随着分库与分表演变,也会遇到跨库排序跨表排序问题。

    59710

    springboot原理详解_Spring Boot

    多个线程可以共享同一个 RedisConnection,它利用优秀 Netty NIO框架来高效地管理多个连接,支持先进 Redis 功能,如 Sentinel、集群、流水线、自动重新连接 Redis...在Spring Boot 2.0中,使用 @ConfigurationProperties 绑定机制被重新设计,限制了绑定规则,并修复了 Spring Boot 1.x 中许多不一致地方。...为请求映射获取到Handler寻找一个HandlerAdapter,在本项目中HandlerAdapter有四个,如下图所示:     这四个适配器见名知意即可知道大概意思,如第一个适配器是...原理图: 参数解析原理图 3.3视图解析    上文我们说过,在前后端分离项目中,通常后端只需要返回指定格式数据,前端使用相关技术进行页面渲染处理。...但是在传统开发或非大型项目中,我们会将数据视图一起返回或直接跳转到指定页面,此时都需要使用到视图解析技术。

    2.1K30

    SpringMVC框架复习大纲【面试+提高】

    视图解析器(ViewResolver)返回真正视图对象(View)。 (此时前端控制器中既有视图又有Model对象数据)前端控制器根据模型数据视图对象,进行视图渲染。...说明:在springmvc各个组件中,处理器映射器、处理器适配器视图解析器称为springmvc三大组件。...默认注册了注解映射器注解适配器等bean。...六、图片上传到非工程文件夹下,希望通过该工程url访问该图片 文件上传到tomcat下工程下,项目重新启动图片就没了 解决思路: 在配置文件下配置路径 BASE_FILEUPLOAD_URL=...这个在开发中肯定会配置,因为它有好多作用,如果不配置,则下面代码无效: 下面是目标方法代码: ?

    1.2K40

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券