android保存设置和信息

时间:2012-01-05 15:48:24

标签: android xml sqlite saving-data

我是Android的新手,我经常搜索并找不到令人满意的答案;我需要的是为我的应用程序保存一些设置,如

1>语言,要显示的项目数,显示/不显示图像等... 我认为最好使用共享偏好

2 - ;保存从互联网上获取的数据类别......

这是我的问题:

我将数据分为带有键,名称,类型,数据[]的类别对象...(data []一直在变化,退出应用程序后没有保存),(键,名称,类型是最终值由程序员定义。)

并且因为有许多类别,用户可能想要加载或不想加载(大约25个),他/她可以选择要显示的类别,并且必须保存这些选项。

我认为由于数据的复杂性,使用共享首选项无济于事;我正在考虑使用sqlite或xml,不确定哪个是最好的选择,记住效率和内存大小。

注意:我正在为类别信息数组使用全局变量,这是因为data []需要每2-3分钟自动刷新一次,并且必须可用于所有活动,效率和内存空间也是一个问题。 我将不胜感激任何建议,谢谢你。

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