0

我是android新手,我搜索了很多,找不到满意的答案;我需要为我的应用程序保存一些设置,例如

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

2> 保存从 Internet 获取的数据类别...

这是我的问题:

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

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

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

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

4

3 回答 3

1

1> SharedPreferences 是正确的选择

2> 你有多种可能性

a) 使用内部存储并使用对象序列化(为简单起见)、xml(如果要交换数据)或使用自己的格式

b) SQLite 是最快的解决方案。但是你必须为此做更多的编程


b 是我的选择,所以创建一个 DB-Object(静态或单例模式)并为每个数据库任务编写函数

于 2012-01-05T16:03:10.757 回答
0

1) 是的,SharedSettings 应该可以帮助你。周围有很多信息,但是如果您迷路了,请回复。

2)我会制作一个包含所有类别的表格和一个布尔值,上面写着“显示”,如果用户想要显示它,你可以保留它。

当然,这取决于类别的大小以及它们的变化程度,否则您将永远更新数据库。

于 2012-01-05T16:09:11.070 回答
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
于 2012-11-22T10:46:04.463 回答