3

假设我有一个包含 10 列 text(20) 类型的 SQLite 表。

ListFragment 将从数据库中提取 4 列并使用 SimpleCursorAdapter 显示在列表中。

选择后,ListFragment 会将选定的 row_id 传递给 DetailFragment,它将从数据库中提取所有 10 列以显示(另一个查询)。

另一种设计是在 ListFragment 中预先提取所有需要的数据(但只显示那些需要的数据)并通过意图或构造函数将所有内容传递给 DesignFragment。我不喜欢这个选项的是该列表将包含它不需要的其他数据,而原始选项将意味着对数据库的二次调用。

哪个是首选?

谢谢。

4

1 回答 1

1

好吧,我可能不是这方面的专家,但在我看来,最好不要一遍又一遍地查询数据库

查询一次数据(假设您的数据库的内容不是真的很大)并使用Intents传递它们。

但是,我个人建议不要通过 Intent 传递它们,而是创建一个Utility 类来包含数据库的所有详细信息,并且您只需初始化该类对象一次,然后在需要的地方使用该对象。唯一需要记住的是,每次更新数据库内容时都需要更新此对象详细信息。

(例如,像官方的 Facebook Android SDK 使用 Utility 类来存储所有用户信息,包括访问令牌和会话 ID)

于 2013-01-19T20:50:49.193 回答