for(int k=0; k<listItem.size(); k++)
{
Log.e("저장된값은?",listItem.get(k)+"");
int pos = listItem.get(k);
studentArr.remove(pos);
}
listItem.clear();
sAdapter.notifyDataSetChanged();
안녕하세요, 안드로이드 초보입니다.(__)
커스텀 리스트뷰를 체크박스/이름/전화번호 형식으로 만들고
동적으로 추가,삭제하는 것을 구현하려고 합니다.
삭제 시, 체크 된 데이터들만 array에서 제거하려고 하는데 삭제가 잘 안됩니다..
위 코드는 삭제버튼을 눌렀을 때 처리하는 코드입니다.
integer형 arraylist에 제가 체크해놓은 포지션을 저장했다가, 삭제할 때 사용합니다.
log로 저장된 값을 출력할 때 제가 체크한 포지션으로 나옵니다.
(0,1,8 등으로)
현재는 배열에 9명의 학생이름을 담아서 출력하는데, [0~8인덱스]
인덱스에러가 발생합니다..마지막학생을 삭제하려고 하면
java.lang.IndexOutOfBoundsException: Invalid index 8, size is 7 이 에러가 발생하는데요..
제가 위 코드에서 실수한 것이 있는지 조언 좀 부탁드립니다..
해당 에러를 검색해보니 사이즈 외의 것을 처리하면 발생하는 오류라는데요..
맨 위의 1,2번째 학생을 삭제하면 1,3번째 학생이 삭제됩니다...
먼가 로직을 잘못짠거같은데 ... 복잡해서 어떻게 해야할지 모르겠습니다.