シナリオ:-
私は2つを持っていますArrayList
リストには画像が含まれています
postList には、選択した画像の位置が含まれています
画像を選択して削除メニューを押すと、選択した画像が削除されます。
でコードを実行するdebug
と、正常に動作し、希望の出力が得られます。
しかし、通常モードで実行していると、クラッシュして上記のようになりexception
ます。
if (posList.size() > 0)
{
Toast.makeText(getBaseContext(), "i value" +posList.size(),
Toast.LENGTH_SHORT).show();
for (int i = 0; i < posList.size(); i++)
appAdp.list.remove(appAdp.list.get(posList.get(i)));
appAdp.notifyDataSetChanged();
posList.clear();
Toast.makeText(getBaseContext(), "You deleted selected items",
Toast.LENGTH_SHORT).show();
}
return true;
ここにpostListの値
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
boolean checked) {
posList.add(position);
ここに表示されるエラー
appAdp.list.remove(appAdp.list.get(posList.get(i)));
logcat:-
java.lang.IndexOutOfBoundsException: Invalid index 2, size is 2
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
at java.util.ArrayList.get(ArrayList.java:304)
なぜこのように振る舞うのか、何の手がかりも得られません。
助けてくれてありがとう。