Java 限制ListView中的项目
我有一个ArrayList,它包含X个项目。在我的自定义ListView适配器中,我将getItemCount()设置为仅返回100项。当我运行我的应用程序时,会呈现listview,但是,当我滚动通过索引75处的项目时,它会给我一个类似这样的错误 java.lang.IndexOutOfBoundsException:索引:75,大小:75 我假设发生这种情况是因为ArrayList只有75项。我无法返回list.size(),因为大小总是在变化,它可能大于或小于100,但我只需要显示以Java 限制ListView中的项目,java,android,android-listview,android-adapter,Java,Android,Android Listview,Android Adapter,我有一个ArrayList,它包含X个项目。在我的自定义ListView适配器中,我将getItemCount()设置为仅返回100项。当我运行我的应用程序时,会呈现listview,但是,当我滚动通过索引75处的项目时,它会给我一个类似这样的错误 java.lang.IndexOutOfBoundsException:索引:75,大小:75 我假设发生这种情况是因为ArrayList只有75项。我无法返回list.size(),因为大小总是在变化,它可能大于或小于100,但我只需要显示以get
getCount()的形式尝试此操作。
@覆盖
public int getCount(){
返回items.length()<100?items.length():100;
}
因为您已经显式地将getCount()
设置为return
100,现在如果ArrayList
中没有100个项目,它将引发IndexOutOfBoundsException
,因为系统将尝试从没有该项目的列表中提取100个项目
因此,不要总是返回100,而是仅当列表中的项目超过100个时才返回100
@Override
public int getCount(){
return items.length() < 100 ? items.length() : 100;
}