次のコードに問題があります。AndroidのJavaリストから項目を削除する
アイテムのインデックスを取得して使用しています。今度は同じ位置に戻らないようにリストからその位置を削除したいのですが、アプリケーションのクラッシュの下にあるメソッドを呼び出すと、その行を削除するとmyList.remove(randomIndex);
が正常に実行されます。 この行に何か問題がありますか?
public void showtime() {
Random rand = new Random();
randomIndex = rand.nextInt(myList.size());
randomName = myList.get(randomIndex);
txtView.setText(randomName);
if (randomIndex==1)) {
imgLabel.setImageResource(R.drawable.Label1);
}
if (randomIndex==2)) {
imgLabel.setImageResource(R.drawable.Label2);
}
if (randomIndex==3)) {
imgLabel.setImageResource(R.drawable.Label3);
}
myList.remove(randomIndex);
}
エラーログを貼り付けます... –
これ以上の情報なしではわかりにくいですが、リストのサイズがコードのどこかにキャッシュされていると思われ、アプリケーションが最後の要素にアクセスしようとしますその位置(IndexOutOfBoundsExceptionとも呼ばれます)。 – Thomas
あなたのコードはそれほどコンパイルされません:(randomIndex == 3)) –