当活动被销毁时保存listview项目的最佳方法是什么?

时间:2012-12-24 10:02:15

标签: android database listview

我正在创建一个应用程序,我在列表视图中向用户显示联系人。我希望向用户显示相同的列表视图,直到并且除非对联系人列表进行了一些更改。这里出现的问题是当活动被销毁并且用户返回到具有联系人列表视图的活动Where shall i store the items of the listview as to show them to the user again时?我认为有3种选择:

1. Sqlite database
2. SdCard
3. Shared Preferences

我无法做出关于which will be the best option for saving the items的决定以便稍后检索它们。在我的情况下,列表视图中的项目数量可能高达1000.请帮助我。谢谢。

2 个答案:

答案 0 :(得分:4)

您可以使用SQLite数据库,因为它受到保护,您也可以使用sdcard和任何文件格式,如属性文件,csv ...等来保存您的列表详细信息,但sdcard媒体与所有应用程序共享并可从用户访问也有。有这么多的联系我不会推荐共享偏好,因为获取细节和运行查询是不可能的,就像在SQLite中一样。

答案 1 :(得分:2)

在你的情况下,你肯定应该使用SQLite。

以下是对何时使用的存储选项的简要说明:

共享偏好设置: 这些基本上适用于存储应用程序首选项和其他一小部分数据.SharedPreferences是一个键/值存储,您可以在其中保存某些键下的数据。要从商店读取数据,您必须知道数据的密钥。因此,读取数据变得容易。但是对于大型数据集,它可能会变得有点困难,因为您必须为数据集中的每个键定义唯一键。例如:在SharedPreferences中存储用户登录的会话密钥。

内部存储: 这适用于存储用户不需要访问的应用程序数据。可能适用于存储日志或应用程序将创建/更新/删除的任何内容。

<强> SQLite的: 大量相同的结构化数据应存储在SQLite数据库中,因为数据库是为这种数据设计的。由于数据是由数据库构建和管理的,因此可以查询使用SQL等查询语言获取与某些条件匹配的数据子集。在这里搜索变得容易。虽然SQLite可能无法像专用数据库那样大规模扩展,但对于像Android应用程序这样的小型应用程序来说,它非常快捷方便。例如:存储列表视图项目或存储配方应用程序的配方。

希望这有帮助!!!