【发布时间】:2016-01-28 19:53:47
【问题描述】:
我的 android 应用程序中有一个 SQLite 数据库,其中包含多个用户名/密码条目,此内容被放入 ListView。
我想要实现的是,当一个项目被长按时,它会从列表中删除,但我遇到了一个问题。
我使用以下代码从数据库中删除一个条目:
public void deleteEntry(int ID) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_LOGINS, KEY_ID + " = ?",
new String[]{Integer.toString(ID)});
db.close();
}
数据以下列方式存储在数据库中:
--------------------------
1|server|username|password
2|server|username|password
3|server|username|password
4|server|username|password
--------------------------
现在,如果我要将条目 #2 标记为删除,我会得到以下结果
--------------------------
1|server|username|password
3|server|username|password
4|server|username|password
--------------------------
这会导致尝试访问其他条目时出现问题,因为我使用第一个字段进行所有查找。使用我的 OnItemLongClickListener 中的位置,如果我要按列表中的第二个项目,它将搜索 ID 为 2 的项目。
如何更新数据库中的条目,以便我的 ID 字段按顺序编号?有没有比使用 ID 字段更好的替代方法?
【问题讨论】:
-
数据在列表中是如何显示的?我的意思是您是否以任何方式对其进行排序?
-
你为什么用的是职位而不是ID?
-
@TeChNo_DeViL 我按照从数据库接收到的顺序显示它
-
@CL 因为没有0 id字段,所以数据库以ID 1开头
标签: java android database sqlite