IndexOutOfBoundsException をスローするいくつかのコードで非常に厄介な問題が発生しましたが、その理由が本当にわかりません。logcat は、次のコードの「addTimetableItem」を指していますが、これについては詳しく説明していません。
if(sortedFridayTimes.size()>0){
insertDay("Friday");
for(int i=1; i<sortedFridayTimes.size()+1;i++){
addTimetableItem(sortedFridayTimes.get(i));
}
}
「sortedFridayTimes」は、すでに順番に並べ替えた独自の「Timetable Entry」オブジェクトを含む ArrayList です。最初にサイズがチェックされ、オブジェクトがあるかどうかが確認されます。次に、タイトルの新しいテキストビューを作成してレイアウトに追加する「insertDay」が実行されます (これは正常に機能します..)。for ループ内では、すべてのオブジェクトを arraylist からレイアウトに追加するというアイデアがあります。これで、「addTimetableItem」コードが既にテストされているように機能することがわかりましたが、私の問題は、配列リストから最後のオブジェクトを取得できないように見えることです。for ループを for のみ実行するように宣言すると、
"i<sortedFridayTimes.size()"
その後、プログラムは正常に実行されますが、変数をデバッグして監視したため、存在することがわかっている配列リストの最後のエントリを取得できません。上記のように「+1」を追加すると、IndexOutOfBoundsException が発生し、その理由が本当にわかりません。私が言ったように、私はデバッグし、私が指そうとしているアレイリストにエントリが存在することを知っていますが、それはただクラッシュします. 必要に応じてさらにコードを提供できますが、誰かアイデアを教えてください。