ListView 适配器实现getviewtypcount() 数组越界IndexOutOfBoundException

ListView中Item的多布局显示,需要用到了getViewTypecount和getItemViewType这两个重写方法,但是做完后出现了如下提示错误:java.lang.ArrayIndexOutOfBoundsException: (数组越界)

原因:居然是getItemViewType这里里面返回的Type必须是从0开始的,如果getviewtypecount等于2,那么getItemViewType返回的数值是从0~1的常数。简单说,在刚开始设置type常量时,是从0开始递增的,不能乱设置。如下所示:

  1. @Override
  2. public int getViewTypeCount() {
  3. return 2;
  4. }
  5. @Override
  6. public int getItemViewType(int position) {
  7. MyMsg myMsg = mDatas.get(position);
  8. String isRead = myMsg.getIsRead();
  9. if ("1".equals(isRead)) {
  10. return 0;
  11. } else {
  12. return 1;
  13. }
  14. }

上面代码中,在getItemViewType中,我们只能返回0,1; 记住,只能从0开始,而不能是1,2。

再查下官方文档,有这样的一句话:(getItemViewType的返回值必须是从零开始的,并且返回的值最后是getViewTypeCount的返回值-1)
  Note: Integers must be in the range 0 to getViewTypeCount() - 1.

时间: 2024-12-19 22:29:51

ListView 适配器实现getviewtypcount() 数组越界IndexOutOfBoundException的相关文章

listview添加头部view问题,数组越界问题

发现在开发中如果用下面的函数,在开发中会遇到一些问题,一个自选基金的管理界面是个listview,点击修改进入下一个界面,然后返回再去点击删除对应行,就会报数组越界, 应该是返回后listview发生了变化,可能和header有关系,换成一个参数的就没有了问题. lv.addHeaderView(headerView, , ); 版权声明:本文为博主原创文章,未经博主允许不得转载.

Android 【问题汇总】列表数组越界的问题

遇到了一个诡异的问题,ListView发生数组越界(偶尔会),程序崩溃. 错误信息如下: W/dalvikvm( 5176): threadid=1: thread exiting with uncaught exception (group=0x40015568) E/zhe800_android( 5176): Invalid index 2, size is 0 E/zhe800_android( 5176): java.lang.IndexOutOfBoundsException: In

android之ListView,详细介绍实现步骤,举例,自定义listview适配器

android之ListView,详细介绍实现步骤,举例,自定义listview适配器 09. 四 / android基础 / 没有评论 本文来源于www.ifyao.com禁止转载!www.ifyao.com android中如何使用listView是比较重要的,因为很多时候都需要将数据库中的数据以列表显示, 具体使用步骤:大体 1,建立一个item.xml文件,此布局文件布局布局如何具体显示列表中的每一个条目 2,在要使用listview的界面中添加listview控件. 3,activit

最新一课 老师指点用Listview适配器

上课前 <?xml version="1.0" encoding="utf-8"?>    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"       android:layout_width="fill_parent"       android:layout_height="fill_parent&qu

QRCode 数组越界异常

因为需求的缘故需要解析出ios二维码的地址,把解析的地址传到按钮上 把功能写好之后用几张二维码测试没问题后提交到svn上,第二天生产环境正好发版,发现有个应用的按钮点了一直没反应,看了下控制台发现报错 居然是数组越界...纠结了好久.最后点到那个二维码看看有什么特别之处 一切尽在无言中(我擦...居然是1000多像素的二维码,你逗我呢)...

谨防数组越界!

今天第一次对数组越界问题有了深切的感受,数组越界如果在Release版本中运行也不会报错,如果是Debug版本的话,若直接通过常量数值引用数组下标会被检测到数组越界,若通过变量引用数组下标也是不会被检测到的!!! 测试下面的代码, 1 #include <stdio.h> 2 3 int main(void) 4 { 5 int arr[1][1] = {20}, brr[1] = {1}, y = 5; 6 7 //printf("%d\n", arr[5][0] ==

数组越界

1. 找出下列代码的错误 void test() { char string[10]; char *str="0123456789"; strcpy(string,str); }字符串str需要11个字节才能存放下(包括末尾的'\0'),而string只有10个字节的空间:strcpy会导致数组越界. void test() { char string[10]; char str[10]; int i; for(int i=0; i<10; i++) { str[i]='a';

iOS 数组越界 Crash处理经验

我们先来看看有可能会出现的数组越界Crash的地方: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { WelfareItem *item = [_datasourceArray objectAtIndex:indexPath.row];//有可能会越界,你在下拉刷新时会用[_datasourceArray removeAllObjects],这时你又点了某个

数组越界保护与消息传递black机制

数组越界保护if(index.row <= [array count]) 发送消息[[NSNotificationCenter defaultCenter]     postNotificationName:@"chuandi" object:self]; 接收消息 自己写个action的动作[[NSNotificationCenter defaultCenter] addObserver:self