記錄一次自己使用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開始的。