我是Android编程的新手。
我想创建一些ArrayLists并将它们放入程序中。当我关闭或暂停程序时,必须存储它们。直到程序卸载。
如何将它们存储在程序中。
我可以使用savedInstanceState吗?
答案 0 :(得分:2)
您可以使用商店数据的共享偏好设置并获取更多详细信息,请参阅以下http://developer.android.com/reference/android/content/SharedPreferences.html下面的官方文档
此共享首选项示例教程的链接http://www.androidhive.info/2012/08/android-session-management-using-shared-preferences/
答案 1 :(得分:1)
存储阵列列表的方法。
选项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。如果您没有。对于arrayLists而不是使用选项1,您可以使用sqlite将数据保存在表中。当您拥有庞大的关系数据时,首选Sqlite。 你可以查看sqlite tutorial
选项3。使用静态arraylists .Static变量保留值但不会很长。使用静态变量不是一个好习惯。
答案 2 :(得分:0)
请在开发者网站上查看此链接
http://developer.android.com/guide/topics/data/data-storage.html
您的数据存储选项如下:
共享偏好设置
将私有原始数据存储在键值对中。
内部存储
将私人数据存储在设备内存中。
外部存储空间
将公共数据存储在共享外部存储上。
SQLite数据库
将结构化数据存储在私人数据库中。
网络连接
使用您自己的网络服务器在网络上存储数据。
答案 3 :(得分:0)
使用与Android集成的SQLite安装。这将一直持续到用户卸载/擦除其数据SQLite This tutorial has good examples
答案 4 :(得分:0)
我可以想到两种方法来存储数据持久使用,直到您卸载应用程序:
将其存储在DB中 将其存储在共享首选项文件中。
如你所说,你是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。