IndexOutOfBoundsExceptionをスローするコードでは、非常に厄介な問題があります。病気の詳細を説明し、次のコードの「addTimetableItem」にlogcatポイント:「sortedFridayTimes」Android ArrayListを使用したIndexOutOfBoundsException
if(sortedFridayTimes.size()>0){
insertDay("Friday");
for(int i=1; i<sortedFridayTimes.size()+1;i++){
addTimetableItem(sortedFridayTimes.get(i));
}
}
私はすでに順にソートしている私自身の「タイムテーブルエントリ」オブジェクトを格納するArrayListです。最初に、オブジェクトがあるかどうかを確認するためにサイズがチェックされ、 "insertDay"が実行されてタイトルの新しいテキストビューが作成され、レイアウトに追加されます(これは正常に動作します)。 forループの内部では、arraylistのすべてのオブジェクトをレイアウトに追加することが考えられます。今、私は "addTimetableItem"コードは、それがすでにテストされているように動作することを知っていますが、私の問題は、私はできませんarraylistの最後のオブジェクトを取得するようです。私は
"i<sortedFridayTimes.size()"
のために実行するだけにforループを宣言した場合、プログラムは正常に動作しますが、私は私がデバッグ、私の変数を見てきたので、存在することがわかっている配列リストの最後のエントリを得ることはありません。上記のように "+1"を追加すると、今はIndexOutOfBoundsExceptionが発生します。なぜそれが本当にわかりません。私が言ったように、私はデバッグしました、そして、私が指摘しようとしているarraylistにエントリが存在することを知っていますが、ただクラッシュします。必要に応じてもっと多くのコードを提供することができますが、誰にも何かアイデアがありますか?
もし私が思ったのは、サイズが2であれば、1から始まり2より小さくなるため、コードが実行されますが、2になると2になりません。したがってコードは実行されません私はリストの2番目の値を欠場するでしょう。ライト? –
0から始まり、N-1で終わります。 –
助けを歓迎し、今すぐ選別しました。 –