listview 中出现的ArrayIndexOutOfBoundsException

来源:互联网 发布:蔡仕伟淘宝 编辑:程序博客网 时间:2024/06/01 08:53

记录一次自己使用listview出现的问题–数组越界。最近在做一个聊天界面,用到了Listview,加载不同类型的布局。然而,一直出现下面的异常,却未提示所在哪一行:

listview java.lang.ArrayIndexOutOfBoundsException: length=2; index=2

查了很久的资料,发现了错误原因。
由于需要ListView的item 显示两种布局,在聊天适配器中需要添加 getItemViewType(int position)getViewTypeCount() 两个方法,错误的写法如下:

  public int getItemViewType(int position) {        MsgBean msgBean = mDatas.get(position);        if (msgBean.getType() == MainActivity.Type.SERVER)            return 1;        return 2;    }    @Override    public int getViewTypeCount() {        return 2;    }

这里,view的类型总数为2,那么getItemViewType 方法返回的类型应该为:0,1 ,而不是这里出现的1和2。不要忘了,通常都是以0开始的。

0 0
原创粉丝点击