我遇到了一个非常烦人的问题,一些代码抛出了 IndexOutOfBoundsException,我真的不明白为什么。logcat 指向以下代码的“addTimetableItem”,这将进一步解释:
if(sortedFridayTimes.size()>0){
insertDay("Friday");
for(int i=1; i<sortedFridayTimes.size()+1;i++){
addTimetableItem(sortedFridayTimes.get(i));
}
}
“sortedFridayTimes”是一个 ArrayList,其中包含我自己的“时间表条目”对象,我已经按顺序进行了排序。首先检查大小以查看是否有任何对象,然后如果有“insertDay”运行,它会为标题创建一个新的文本视图并将其添加到布局中(这工作正常..)。在 for 循环中,想法是然后将 arraylist 中的所有对象添加到布局中。现在我知道“addTimetableItem”代码就像我已经测试过的那样工作,但我的问题是我似乎无法从数组列表中取出最后一个对象。如果我声明 for 循环只运行
"i<sortedFridayTimes.size()"
然后程序运行良好,但我没有得到我知道存在的arraylist 中的最后一个条目,因为我已经调试并观察了我的变量。在添加如上所示的“+1”时,我现在得到了 IndexOutOfBoundsException,我真的不知道为什么。正如我所说,我已经调试过并且我知道我试图指向的数组列表中存在一个条目,但它只是崩溃了。如果需要,我可以提供更多代码,但是有人有什么想法吗?