안녕하세요!
리스트뷰 추가하면 아이템 등록이 되잖아요.
근데 문제가 있어요.
1
2
3
4
이렇게 리스트뷰 아이템을 추가했다고 가정합시다.
여기에서 2 3 을 지웠으면
1
4
가 되죠.. 여기에서 파일입출력으로 아이템 추가하면
1
5
4
이렇게 되요. 또 추가하면
1
5
6
4
또 추하가면
1
5
6
4
7
이렇게 되버려요 ㅠㅠㅠ
삭제된 부분을 빈공간이 생겨서 추가하면 거기에 추가하는데 다채우면 7부터 정상적으로 출력되요..
소스 보여드릴께요.
리스트뷰 다중 체크후 삭제하는 소스에요.
public void delete(){
File file = new File(path);
File[] files = file.listFiles();
SparseBooleanArray sb = listview.getCheckedItemPositions();
if(sb.size() !=0 ){
for(int i = listview.getCount()-1; i>=0; i--){
if(sb.get(i)){
list.remove(i);
files[i].delete();
}
}
Toast.makeText(this, "선택된 파일을 삭제했습니다.", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(this, "삭제 파일이 없습니다.", Toast.LENGTH_SHORT).show();
}
listview.clearChoices();
adapter.notifyDataSetChanged();
}
이번엔 단일삭제 소스에요.
public void delete(){
Intent intent2 = new Intent(this, MemoList.class);
File del = new File(path+a);
del.delete();
intent2.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent2);
finish();
}
이 소스 외에는 다른 문제가 있을까요?
어떻게 해야 빈공간을 지울 수 있을까요?