제가 커스텀 리스트뷰를 sqlite로 연동해서 만들고 있는데요~
sql = "create table file2 ( _id integer primary key autoincrement,"
+ "FILENAME TEXT,"
+ "URL TEXT );";
Log.i("mylog", sql );
db.execSQL( sql );
이렇게 되면서 _id값이 하나씩 증가하잖아요?
근데 아래 코드가 삭제 코드거든요? 근데 이렇게 삭제하면 삭제는 되는데 리스트뷰가 삭제되면 _id값이 하나씩 줄어야 되는
데 그게 안되요 예를들어서 리스트뷰값이 5개가 있는데 그럼 리스트뷰제목이 1-5까지 잖아요 1을 지웠어요그럼
2-5까지 남아요 그럼 2의 아이디는 _id=1이어야 되는데 여전히 2에요 그리고 리스트뷰를 추가를 하게되면 남아있는 값이 4
개니깐 5여야 되는데 _id=6이되어버립니다 이거 삭제해줄때 데이터를 위로 올려야 될꺼 같은데 제 머리로는 어제 하루종일
했는데 잘 안되네요 도움 좀 주세요 ㅜㅜ
public static void deleteFile( int position, FavoriteDBHelper dbHelper ){
ArrayList<FavoriteFile> list = null;
Cursor cs = null;
SQLiteDatabase db = dbHelper.getReadableDatabase();
list = new ArrayList<FavoriteFile>();
StringBuilder sql = new StringBuilder("DELETE FROM file2 WHERE _id="+(position+1)+";");
FavoriteActivity.arSrc.clear();
String sq = "SELECT * FROM file2";
cs = db.rawQuery( sq , null );
while (cs.moveToNext()) {
FavoriteFile item = new FavoriteFile( R.drawable.icon, cs.getString(1), cs.getString(2) + "" );
list.add(item);
}
FavoriteActivity.adapter.notifyDataSetChanged();
Log.i("mylog", sql.toString());
db.execSQL( sql.toString() );
db.close();
}