我是Android的新手,我经常搜索并找不到令人满意的答案;我需要的是为我的应用程序保存一些设置,如
1>语言,要显示的项目数,显示/不显示图像等... 我认为最好使用共享偏好
2 - ;保存从互联网上获取的数据类别......
这是我的问题:
我将数据分为带有键,名称,类型,数据[]的类别对象...(data []一直在变化,退出应用程序后没有保存),(键,名称,类型是最终值由程序员定义。)
并且因为有许多类别,用户可能想要加载或不想加载(大约25个),他/她可以选择要显示的类别,并且必须保存这些选项。
我认为由于数据的复杂性,使用共享首选项无济于事;我正在考虑使用sqlite或xml,不确定哪个是最好的选择,记住效率和内存大小。
注意:我正在为类别信息数组使用全局变量,这是因为data []需要每2-3分钟自动刷新一次,并且必须可用于所有活动,效率和内存空间也是一个问题。 我将不胜感激任何建议,谢谢你。
答案 0 :(得分:1)
1> SharedPreferences是正确的选择
2 - ;你有多种可能性
a)使用内部存储并使用对象序列化(为简单起见),xml(如果要交换数据)或使用自己的格式
b)SQLite是最快的解决方案。但你必须为此做更多的编程
b将是我的选择,因此创建一个DB-Object(静态或单一模式)并为每个数据库任务编写函数
答案 1 :(得分:0)
1)是的,SharedSettings可以帮助你。周围有很多信息,但如果您迷路了,请回复。
2)我会创建一个包含所有类别的表和一个表示“show”的布尔值,如果用户想要显示它,你可以保留。
当然,这取决于类别的大小以及它们的变化程度,因为否则您将永远更新数据库。
答案 2 :(得分:0)
存储您的设置的用户共享首选项
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