Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 限制ListView中的项目_Java_Android_Android Listview_Android Adapter - Fatal编程技术网

Java 限制ListView中的项目

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

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

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

我假设发生这种情况是因为ArrayList只有75项。我无法返回list.size(),因为大小总是在变化,它可能大于或小于100,但我只需要显示以
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;
}