gpt4 book ai didi

java - ListView 页脚导致 ArrayIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-11-29 03:09:08 25 4
gpt4 key购买 nike

我有一个带有页脚的 ListView(带有 TextViewImageView 的简单 LinearLayout),和一个具有 2 个 View 类型的 BaseAdapter:

@Override
public int getViewTypeCount() {
return 2;
}

我的问题是当我将列表滚动到底部并到达页脚时,因为抛出了这个异常:

java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:6444)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:4993)
at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4197)
...

如果我将 getViewTypeCount() 增加到 3,一切正常。
这是我第一次遇到这个错误,在其他项目中我有 BaseAdapters 更多的 ViewTypes 和页脚和页眉,它在没有“增量黑客”的情况下工作正常。

编辑: BaseAdapter 代码:

    @Override
public int getCount() {
return mItemsList.size();
}

@Override
public Object getItem(int position) {
return mItemsList.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public int getViewTypeCount() {
return 2;
}

@Override
public int getItemViewType(int position) {
if (mItemsList.get(position).getValue().equals(mContext.getString(R.string.stub))) {
return STUB;
}
return ITEM;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (getItemViewType(position) == ITEM) {
return itemView(position, convertView);
}
return stubView(convertView);
}

我在这里错过了什么?
谢谢。

最佳答案

getViewTypeCount() 用于实例化一个convertView数组,由getItemViewType() 的返回值索引,并且像每个数组,它是 0-based。由于这个原因,您的 getItemViewType() 不能返回大于或等于 getViewTypeCount() 值的值。 getViewTypeCount() == 2 唯一可能的值是 01

关于java - ListView 页脚导致 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30399349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com