我是 Android 编程新手。
我想创建一些 ArrayLists 并将它们放入程序中。当我关闭或暂停程序时,它们必须被存储。直到程序卸载。
我怎样才能将它们存储在程序中。
我可以使用 savedInstanceState 吗?
您可以使用共享首选项来存储数据并获取数据以获取更多详细信息,请参阅以下 http://developer.android.com/reference/android/content/SharedPreferences.html上的官方文档
以及共享首选项示例教程的链接http://www.androidhive.info/2012/08/android-session-management-using-shared-preferences/
存储数组 List 的方法。
选项 1.我参考了这个链接Save ArrayList to SharedPreferences
在 API 11 之后,SharedPreferences 编辑器接受集合。您可以将 List 转换为 HashSet 。当您读回它时,将其转换为 ArrayList 。检查上面的链接以获得完整的解释和代码。
//Retrieve the values
Set<String> set = new HashSet<String>();
set = myScores.getStringSet("key", null);
//Set the values
Set<String> set = new HashSet<String>();
set.addAll(listOfExistingScores);
scoreEditor.putStringSet("key", set);
scoreEditor.commit();
选项 2。 如果您没有。数组列表,而不是使用选项一,您可以使用 sqlite 将数据保存在表中。当您拥有庞大的关系数据时,首选Sqlite 。你可以查看这个sqlite 教程
选项 3.使用静态数组列表。静态变量保留值但不会很长时间。使用静态变量不是一个好习惯。
我可以想到两种方法来存储持久使用的数据,直到您卸载应用程序:
将其存储在数据库中 将其存储在共享首选项文件中。
正如您所说,您是 android 新手,我希望您使用 SharedPreference。
像这样声明首选项对象
SharedPreferences prefs = this.getSharedPreferences(context, Context.MODE_PRIVATE);
使用将值存储在键中
prefs.edit().putString(KEY, "Value to be stored").commit();
获得价值使用
prefs.getString(KEY, DEFAULT_VALUE);
如果 KEY 没有值对,则返回 DEFAULT_VALUE。
请在开发者网站上查看此链接
http://developer.android.com/guide/topics/data/data-storage.html
您的数据存储选项如下:
共享偏好
将私有原始数据存储在键值对中。
内部存储器
将私有数据存储在设备内存中。
外置储存
将公共数据存储在共享的外部存储上。
SQLite 数据库
将结构化数据存储在私有数据库中。
网络连接
使用您自己的网络服务器将数据存储在网络上。