-
[java]Arraylist 에서 item 삭제안드로이드 2016. 12. 7. 11:53
Arraylist 에서 체크한 항목을 삭제해야 되는 경우가 있어
별 생각 없이 다음과 같이 만들어서 remove 함수를 호출해서 해 보았다.
for(int i=0; i<mMainListArrays.size(); i++) {
if(mMainListArrays.get(i).isChecked() == true) {
mMainListArrays.remove(i);
}
else {
}
}
하지만 이렇게 해보니
총 항목이 3개인 경우에서 두개 항목을 체크하고 삭제를 했을때
두개 항목이 없어지는게 아니라 앞 한 항목만 없어지길래
생각해보니 앞에서 순차적으로 삭제를 해보니 앞에서 삭제가 되면 꼬여버리는 문제가 있었다.
그래서 이런 경우는
for(int i= mMainListArrays.size()-1; i>=0; i--) {
if(mMainListArrays.get(i).isChecked() == true) {
mMainListArrays.remove(i);
}
else {
}
}
이런식으로 내림차순으로 해야 정상적으로 삭제가 되는걸 알았다.
'안드로이드' 카테고리의 다른 글
[안드로이드] 이미지뷰 data binding (0) 2016.12.13 [android] 모델 클래스에서 inner 클래스 데이터 바인딩 하기 (0) 2016.12.12 [안드로이드] Fragment 에서 Activity 로 데이터 전달(Fragment to Activity) (0) 2016.12.06 [안드로이드]오늘 날짜 비교 체크 (0) 2016.07.21 스피너 형태 DatePickerDialog 만들기 (1) 2016.07.06