android保存设置和信息
我是android的新手,我搜索了很多,没有找到满意的答案;我需要的是为我的应用程序保存一些设置,例如 1> 语言、要显示的项目数、显示/不显示图像等。。。 我认为最好使用共享的首选项 2> 保存要从internet获取的数据类别 我的问题是: 我将数据划分为具有键、名称、类型、数据[…]的类别对象(数据[]一直在更改,退出应用程序后不会保存),(键、名称、类型是程序员定义的最终值) 而且,由于用户可能想或不想加载许多类别(大约25个),因此他/她可以选择显示哪些类别,并且必须保存这些选择 我认为,由于数据的复杂性,使用共享偏好不会有帮助;我正在考虑使用sqlite或xml,但考虑到效率和内存大小,我不确定哪种是最佳选择 注意:我对类别信息数组使用了一个全局变量,这是因为数据[]需要每2-3分钟自动刷新一次,并且必须对所有活动可用,效率和内存空间也是一个问题。android保存设置和信息,android,xml,sqlite,saving-data,Android,Xml,Sqlite,Saving Data,我是android的新手,我搜索了很多,没有找到满意的答案;我需要的是为我的应用程序保存一些设置,例如 1> 语言、要显示的项目数、显示/不显示图像等。。。 我认为最好使用共享的首选项 2> 保存要从internet获取的数据类别 我的问题是: 我将数据划分为具有键、名称、类型、数据[…]的类别对象(数据[]一直在更改,退出应用程序后不会保存),(键、名称、类型是程序员定义的最终值) 而且,由于用户可能想或不想加载许多类别(大约25个),因此他/她可以选择显示哪些类别,并且必须保存这些选择 我认
如有任何建议,我将不胜感激,提前谢谢。1>共享参考是正确的选择 2> 你有多种可能性 a) 使用内部存储并使用对象序列化(为了简单起见)、xml(如果要交换数据)或使用自己的格式 b) SQLite是最快的解决方案。但是你必须为此做更多的编程
b将是我的选择,因此创建一个DB对象(静态或单例模式)并为每个数据库任务编写函数1)是的,共享设置应该对您有所帮助。周围有很多信息,但如果你迷路了,请发回 2) 我将创建一个包含所有类别和布尔值的表格,该布尔值表示“show”,如果用户想显示或不想显示,您可以将其保留在其中
当然,这取决于类别的大小以及它们的变化程度,否则您将永远更新数据库 存储设置中的用户共享首选项
SharedPreferences sharedPreferences = this.applicationContext.getSharedPreferences(preferencesName, Context.MODE_PRIVATE);
//For saving the setting:
//for storing long
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putLong(key, value);
//for storing string editor.commit();
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
//and similarly for int,float etc
//For Retrieving the string:
sharedPreferences.getLong(key, defaultValue); //for long value
sharedPreferences.getSting(key, defaultValue); //for string value
非常感谢。我需要的是:启动应用程序时,我将检查类别读取标志,并相应地读取和显示数据[],同时在类别设置活动中,用户选择将读取设置为真/假并保存。但是没有修改其他变量。从我发现的情况来看:序列化-非常慢,xml会带来解析问题…我想我会同意你关于使用sqlite的建议-数据的格式最好,线程安全。此外,我还需要在未来保存一些数据在数据库中的收藏夹所选择的用户。谢谢,谢谢,;您是指使用sqlite表的表吗?对于类别的大小:key和name只需要与show标志一起保存,并且这些值不会更改。它们是由程序员设置的,不是动态的。