at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:)
2016-03-13 13:10
726 查看
错误提示
错误原因
參考链接
在Android中给ListView写多个不同的item布局的时候,我遇到了一个标题中的数组越界错误,事实上这个错误之前我已经遇到过。但这次我还是又一次认识了一下这个错误的产生原因。
/article/4898290.html
错误原因
參考链接
错误提示:
at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:)在Android中给ListView写多个不同的item布局的时候,我遇到了一个标题中的数组越界错误,事实上这个错误之前我已经遇到过。但这次我还是又一次认识了一下这个错误的产生原因。
错误原因:
给ListView编写多个item条目的时候,我们须要在Adapter适配器中重写 getItemViewType() 和 getViewTypeCoun() 两个方法,我们通常在 getItemViewType() 中给详细的item做区分(这两个方法的返回值类型都为 int 类型),以便在 getView() 载入不同的 layout 布局,而在 getViewTypeCount() 方法中定义一共同拥有多少种不同的item,导致标题中的错误出现的原因。能够使用 StackOverflow 中的一句话来解释:“The item view type you are returning from getItemViewType() is >= getViewTypeCount().”。中文意思就是 getViewTypeCount() 的值必须大于 getItemViewType() 的值,反之,则会出现标题中的错误,通常,我们从 1 開始给不同的item设置 Type 类型。举个栗子来说。我们设置了 Type为1 和 Type为2的item类型,然后在 getViewTypeCount() 方法中返回了 2。 这种话 getViewTypeCount() 的值就和Type为2的时候返回值相等了。于是出现了标题所看到的的数据越界错误,通常我们把 Type 值设置为从0開始计数就可以保证最大值的 Type 类型也不会大于 getViewTypeCount() 方法的返回值。getItemViewType() 源代码中的凝视也提醒我们:”Integers must be in the range 0 to {@link #getViewTypeCount} - 1“。參考链接:
http://lmbj.net/blog/arrayindexoutofboundsexception//article/4898290.html
相关文章推荐
- 记一次Android ListView没有成功显示出来的原因
- Action!Call拨打电话(Intent.ACTION.CALL的使用)
- Android Animation(3)-Android的动画框架
- Android基础&进阶
- android开发心得之知识的量变到质变
- Android 之联系人提供程序
- 具有正则表达式的TextView(Linkify)规则
- 获取android屏幕坐标相关
- 利用重写onTouchEvent方法实现view随手指移动效果
- Android学习_ContentProvider和Uri
- Android ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题解决方案
- 欢迎使用CSDN-markdown编辑器
- Android如何在Framework层使用解锁代码
- Error:(108) No resource identifier found for attribute 'style' in package 'android'
- Android中关闭DatePicker和NumberPicker等Picker类的可编辑模式
- ListView常用方法整理
- Android测试提升效率批处理脚本
- Android自动化测试之Monkeyrunner 脚本编写
- Android性能测试工具 之Emmagee
- Android音频编解码和混音实现