有没有办法通过它在表中的索引/位置而不是通过它的 id 来获取行?
例如,我有 3 行 ID:
Record1
Record2
Record3
现在如果我使用它的 id 删除第二行,剩下的行将是这样的:
Record1
Record3
因为我正在使用 ListView
位置来确定要删除数据库中的哪一行,下次我尝试删除第二行时,我会得到异常,因为 id 为 2 的行不存在.
那么有没有一种方法可以通过索引在表中检索行?
最佳答案
更好的方法是从 ListView
项表示的对象中获取记录的 ID,然后使用它在数据库中获取正确的记录。在您的 ListView
的 OnItemClickListener
中,onItemClick
事件将 AdapterView
作为第一个参数和选择的项目作为第二个。从适配器中获取该项目并将其转换为它所代表的类型。
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
YourClass c = (YourClass)arg0.getItemAtPosition(arg2);
//index of the record to delete can now be accessed at c.id
}
但是,如果你真的想得到第nth条记录,相信你可以这样做:
SELECT * FROM TableName LIMIT 1 OFFSET n;
其中 n 是您要查找的索引。这还假定您的结果的排序方式与它们在 ListView
中的排序方式相同。
关于android - 如何通过索引获取 SQLite 中的一行(而不是通过 id),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14782559/