所以我有这个应用程序,我正在为我的学校项目。它有一个带有自定义arrayadapter的自定义列表视图,并通过单击按钮填充它。这是Room类
public class Room {
private int xBtn;
private int _id;
private int roomImage;
private String name;
private String type;
public Room(String name, String type, int roomImage){
this.name = name;
this.type = type;
this.roomImage = roomImage;
}
这是我的DBHandling onCreate(),addRoom()和deleteRoom()方法:
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
String query = "CREATE TABLE " + TABLE_NAME + "(" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_NAME + " TEXT, " +
COLUMN_TYPE + " TEXT " +
");";
db.execSQL(query);
}
public void addRoom(Room room){
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, room.getName());
values.put(COLUMN_TYPE, room.getType());
SQLiteDatabase db = getWritableDatabase();
db.insert(TABLE_NAME, null, values);
db.close();
}
public void removeRoom(String roomsName){
SQLiteDatabase db = getWritableDatabase();
db.execSQL("DELETE FROM " + TABLE_NAME + " WHERE " + COLUMN_NAME + "=\"" + roomsName + "\";");
}
我的任务是,假设我们有5个房间,room1(id = 0),room2(id = 1)等等。 我删除房间3(#2)将新订单变为0,1,3,4或0,1,2,3。 如果它没有成为0,1,2,3,我怎么能让它运作?如果确实变成了0,1,2,3,那么房间中的_id会改变,还是只会在表格中改变?简而言之,我希望类Room中的_id能够使用表中的id自动调整自身。我怎么做这个工作?
答案 0 :(得分:0)
当你有一个主键自动递增时,第一个条目将是0然后1个它们2如此更新如果你更新说id在1的行它保持为1.现在让我们说行行被删除,但是哦,你需要重新进去。它将会是2或3,或者在你最后一个身份之后的任何地方。