我刚刚开始深入研究一些基本的 Android 开发,并且一直在尝试 aListView
并将其与SimpleCursorAdapter
. 我浏览了很多在线代码示例,但我也有一本书可以作为参考(Professional Android 2 Application Development)。
在书中,他们开发了一个示例 To-Do 列表应用程序,该应用程序将列表项存储在 SQLite 数据库中,具有自动递增的整数主键字段。
用户可以创建新的列表项,但也可以从列表中删除选定的项。在代码中,当删除发生时,主键字段受项目属性的限制(在WHERE
SQL 语句的子句内),position
而不是项目的rowid
.
对我来说,这似乎是一个不正确的实现。查看 SQLite 文档AUTOINCREMENT
,它说这个值总是会增加,旧值永远不会在同一张表上重复使用。因此,如果您要删除并将内容添加到列表中,那么位置和行 ID 似乎会很快失去同步。
那么,我是否正确地假设行 ID 是“索引”到数据库表而不是列表位置的正确方法?我认为如果使用常规的位置是安全的ListAdapter
,但在索引到数据库时似乎不合适。