【问题标题】: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 子句获取数据库的选定部分以供查看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多