ListView
チェックされている項目を削除しようとしています。チェックされた項目が 1 つだけの場合は機能しますが、2 つまたは 3 つある場合はアプリが強制終了します。エラーログには次のように書かれています:
E/AndroidRuntime(2173): java.lang.IndexOutOfBoundsException: 無効な場所 2、サイズは 2
リストに 3 つのアイテムがあり、2 を削除する場合。このエラーの修正を手伝ってくれる人はいますか? コードは次のとおりです。
public void delete() {
btnDelete = (Button) findViewById(R.id.btnDelete);
btnDelete.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
for (int i = 0; i < list.getChildCount(); i++) {
View view = list.getChildAt(i);
CheckedTextView cv = (CheckedTextView) view.findViewById(R.id.checkList);
if(cv.isChecked()){
Log.i("DELETE", adapter.getItem(i).toString()+" "+cv.toString());
adapter.remove(adapter.getItem(i));
}
adapter.notifyDataSetChanged();
}
Toast.makeText(getApplicationContext(), "Selected Items Cleared", Toast.LENGTH_SHORT).show();
}
});
}