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

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

找了好久 将可能出错的地方定位在了 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;

}

时间: 2024-10-08 08:17:50

android BaseAdapter java.lang.ArrayIndexOutOfBoundsException!!!!!!!!!的相关文章

Android BaseAdapter加载多个不同的Item布局时出现UncaughtException in Thread main java.lang.ArrayIndexOutOfBoundsException: length=15; index=15

java.lang.ArrayIndexOutOfBoundsException: length=15; index=15 异常出现的场景:在做聊天界面时,需要插入表情,图片,文字,名片,还有几种较为复杂的布局.这时就需要用到BaseAdapter中的getViewTypeCount()和getItemViewType(int position) 方法了,在发送复杂界面时出现了这个异常. 令人抓狂的是这个异常居然是UncaughtException,根本无法判断哪一行出错了,刚开始的时候觉得一定

android listview Caused by: java.lang.ArrayIndexOutOfBoundsException: length=3; index=3

android listview 适配器在多种类型viewType报错: Caused by: java.lang.ArrayIndexOutOfBoundsException: length=3; index=3 2 at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:6822) 3 at android.widget.AbsListView.trackMotionScroll(AbsListView.j

AndroidStudio编译出现Caused by: java.lang.ArrayIndexOutOfBoundsException: 4其中一种的原因

Caused by: java.lang.ArrayIndexOutOfBoundsException: 4 at com.android.tools.profiler.asm.ClassReader.a(Unknown Source) at com.android.tools.profiler.asm.ClassReader.a(Unknown Source) at com.android.tools.profiler.asm.ClassReader.a(Unknown Source) at

ListView中使用type需要注意的东西 java.lang.ArrayIndexOutOfBoundsException: length=2; index=2 addScrapView

ListView中使用type需要注意的东西 在使用ListView时,如果使用了getItemViewType, 记得他的值一定要是从0开始计数的. 且要覆盖getViewTypeCount方法.并且让getViewTypeCount>getItemViewType 否则会有数组越界异常: 10-21 20:18:16.231: E/AndroidRuntime(4475): java.lang.ArrayIndexOutOfBoundsException: length=3; index=3

java.lang.ArrayIndexOutOfBoundsException

1.错误描述 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at com.you.model.Args.main(Args.java:18) 2.错误原因 /** * */ package com.you.model; /** * @author YHD * */ public class Args { /** * @param args */ public static void main

java.lang.ArrayIndexOutOfBoundsException: 2

1.错误描述 java.lang.ArrayIndexOutOfBoundsException: 2 at report.service.impl.ExportServiceImpl$7.setSheetValue(ExportServiceImpl.java:2649) at utils.ExcelUtil.getWorkbook(ExcelUtil.java:45) at report.service.impl.ExportServiceImpl.exportStation(ExportSe

java.lang.ArrayIndexOutOfBoundsException: 100

在用SaxParser做XML解析的时候碰到如下错误信息: java.lang.ArrayIndexOutOfBoundsException: 100         at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanLiteral(XMLEntityScanner.java:1145)         at com.sun.org.apache.xerces.internal.impl.XMLScanner.scan

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1

场景:eclipse中编写java中用到数组 问题: 程序不报错但是运行过程中 终止,显示字样 “ Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 ” 截图: 原因: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException 这句话表示异常出现在main这个线程里面,错误是java.lang.Ar

android异常java.lang.IllegalStateException: getDatabase called recursively问题

问题场景: 在app首次启动使用到db的时候,后台提示如下错误信息 java.lang.IllegalStateException: getDatabase called recursively at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:204) at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase