在ListView中限制项目

时间:2019-01-24 07:27:36

标签: java android android-listview android-adapter

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

  

java.lang.IndexOutOfBoundsException:索引:75,大小:75

我认为这是因为ArrayList只有75个项目。我不能返回list.size(),因为大小总是在变化,它可能大于或小于100,但是我只需要显示<= 100个项目。

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

1 个答案:

答案 0 :(得分:3)

getCount()的身份尝试

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

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

因此,与其总是返回100,而仅当该List中包含100个以上的项目时才返回100。