在 ListView 中限制项目

Limit Item in ListView

我有一个包含 X 项的 ArrayList。在我的自定义 ListView 适配器中,我已将 getItemCount() 设置为仅 return 100 个项目。当我 运行 我的应用程序时,会呈现列表视图,但是,当我滚动传递索引 75 处的项目时,它会给我这样的错误

java.lang.IndexOutOfBoundsException: Index: 75, Size: 75

我假设发生这种情况是因为 ArrayList 只有 75 个项目。我不能 return list.size() 因为大小总是在变化,它可能多于或少于 100,但我只需要显示 <= 100 个项目。

有人可以建议我如何解决这个问题吗?

试试这个 getCount()

@Override
public int getCount(){
    return items.length() < 100 ? items.length() : 100;
}

因为您已经明确地将 getCount() 设置为 return 100,现在如果 ArrayList 中没有 100 个项目,它会提高 IndexOutOfBoundsException,因为系统将尝试从 List 没有的

中获取 100 个项目

所以,不是 return 总是 100,而是 return 100 仅当 List 中的项目超过 100 时。