【问题标题】:Android SQLite update all ids after delete rowAndroid SQLite 在删除行后更新所有 id
【发布时间】:2018-12-17 12:08:10
【问题描述】:
我的英语不是很好。对不起。我正在努力学习做 Android 应用程序。但我有一个问题。我正在添加 Android SQlite 内容。我正在一一得到它们。我用按钮进行上一页和下一页。 Next = id+1,Previous = id-1
到目前为止一切正常。但是当我删除这些内容时,id 仍然是空的。
例如。
id - 姓名 - 年龄
1 - 名称 - 26
2 - 名称 - 32
3 - 名称 - 31
4 - 名称 - 21
当我删除 id 内容时 2
id - 姓名 - 年龄
1 - 名称 - 26
3 - 名称 - 31
4 - 名称 - 21
我无法获取内容,因为当我按下下一步按钮时 id 为空。
我怎么解决这个问题?
我可以在每次删除后重置 id 值吗?
id - 姓名 - 年龄
1 - 名称 - 26
2 - 名称 - 31
3 - 名称 - 21
请帮帮我。
【问题讨论】:
标签:
android
sqlite
android-studio
android-sqlite
【解决方案1】:
您需要从列表中的第一个表中获取所有行,并像这样在下一个和上一个按钮上迭代列表。
int currentIndex=0
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(currentIndex<dataList.size()-1)
{
currentIndex++;
setCurrentItem(dataList.get(currentIndex));
}
}
});
previuosButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(currentIndex>0)
{
currentIndex--;
setCurrentItem(dataList.get(currentIndex))
}
}
});
【解决方案2】:
SQLite 在删除行后自动递增 ID 的工作方式将保持一致(例如,如果您删除行 ID 2,行 ID 1 和行 ID 3 将保持相同的值),因此使 ID 再次连续的唯一方法是手动移动条目或复制行、删除表、创建新表并再次插入行。
但是,如果您将本地存储仅用于查看,则始终可以使用 limit 子句获取数据库的选定部分以供查看。