當我在回收站視圖中實現頁腳時,出現此錯誤。java.lang.ArrayIndexOutOfBoundsException:length = 27; index = -1
這就是我已經做到的。我使用了兩種類型來顯示列表中的不同視圖,但方法getItemCount()
中沒有設置好,或者當我在列表中獲取單擊的項目模型的位置時。
這是我到目前爲止有:
private final int VIEW_TYPE_ITEM = 0;
private final int VIEW_TYPE_FOOTER = 1;
@Override
public int getItemCount() {
return mUsers == null ? 0 : mUsers.size() + 1;
}
@Override
public int getItemViewType(int position) {
if (isFooterPosition(position)) {
return VIEW_TYPE_FOOTER;
}
return VIEW_TYPE_ITEM;
}
private boolean isFooterPosition(int position) {
return position == mUsers.size() + 1;
}
private User getUser (int position) {
return mUsers.get(position - 1); // Here i'm getting an error mentioned in title
}
編輯:
if (holder instanceof UserHolder) {
final User user = getUser(position);
UserHolder userViewHolder = (UserHolder) holder;
userViewHolder.tvUserName.setText(user.getName());
userViewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnItemClickListener.onItemClick(v, position);
}
});
} else if (holder instanceof FooterViewHolder) {
FooterViewHolder footerViewHolder = (FooterViewHolder) holder;
Typeface typeface = Typeface.createFromAsset(mContext.getAssets(), "Lato-Thin.ttf");
footerViewHolder.mButton.setTypeface(typeface);
}
我有一些項目在列表正常持有者觀點和頁腳視圖一個項目。
而'getUser(0)'的結果應該是什麼?順便說一句:這不看起來像一個可能的'ArrayIndexOutOfBoundsException'來源。更像是'IndexOutOfBoundsException' – Tom
我已經創建了一個用於測試目的的方法,它將在列表中插入20個元素。 –