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

最佳答案

那绝对是不好的做法。我总是使用行ID来删除,使用位置ID来检索光标的行ID。我在家里有那本书的第一版,稍后我会自己看一看。

10-06 03:38