码迷,mamicode.com
首页 > 移动开发 > 详细

android BaseAdapter java.lang.ArrayIndexOutOfBoundsException!!!!!!!!!

时间:2014-08-26 11:42:45      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:android   os   java   io   ar   问题   代码   sp   on   

最近碰到了个很奇葩的问题 同样的代码在两部不同手机呈现不同的状态 一部三星手机运行流畅没有问题 一部国产联想手机 运行报数组越界的错误 

找了好久 将可能出错的地方定位在了 adapter 里面 可到低是哪里出现越界了呢??

我是需要在一个listview里显示2个布局 需要在getItemViewType方法中返回两个数值 起初一个定义为1(CHAT_COME) 一个值为2(CHAT_TO)  ok 应该没有什么问题,

特别注意了 一下 这个方法的奇葩规定 就是必须要返回一个0! 可还是出问题了 在联想手机上 特别重申一下 在三星手机没有问题

找了一下啊资料发现  原来在getItemViewType方法中返回的数值 必须要小于

getViewTypeCount方法返回的值!

也就是不管你需要在listview中加载几个layout 定义的type 只能从0 开始! 这就正好和 getItemViewType方法必须返回一个0 的规定 结合上了 只有从0 开始计数

type 的数值才会小于getViewTypeCount返回的值!

于是将两个返回的数 一个改为了0 (CHAT_COME)

一个改为1(CHAT_TO)

问题就解决了

让我不了解的是 为啥三星的手机上就不会有这样的问题?测试机有限  没有测试其他的国产手机是否会有同样的现象 


public int getItemViewType(int position) {

// TODO Auto-generated method stub

if(list.get(position).isComeMSG()){

return Common.CHAT_COME;

}else

return Common.CHAT_TO;

}

android BaseAdapter java.lang.ArrayIndexOutOfBoundsException!!!!!!!!!

标签:android   os   java   io   ar   问题   代码   sp   on   

原文地址:http://blog.csdn.net/haoxuezhe1988/article/details/38844335

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!