我遇到了在启动画面PreferenceManager和SharedPreferences的教程中使用的两个类。虽然我没有从教程中获得关于它们的大量知识。
那么有人可以向我解释这两个类的用途或用途吗?
答案 0 :(得分:11)
来自Android开发者网站:
用于帮助从活动或XML创建Preference层次结构。
用于访问和修改返回的首选项数据的接口 getSharedPreferences(String,int)。对于任何特定的一组 首选项,所有客户端都有此类的单个实例 份额。
简单地说,当您想要使用默认值从应用程序中的PreferenceManager
文件创建PreferenceActivity
或加载某些首选项时,通常会使用.xml
,并保留它自己的引用到SharedPreferences
。
SharedPreferences
用于处理构成您的偏好的键/值对的存储和检索。因此,您可以使用键添加变量以便稍后检索数据。这会输入PreferenceManager
,可以处理添加默认值并设置默认值SharedPreferences
。
您可以在整个应用程序中使用SharedPreferences
而无需使用PreferenceManager
,但相反的情况并非严格属实。
进一步阅读:
PreferenceManager
。SharedPreferences
(以及其他选项)。SharedPreferences
。答案 1 :(得分:5)
偏好设置是一种用于存储和检索配对的Android轻量级机制 原始数据类型(也称为地图和关联数组)。
在表单的每个条目中,键是一个字符串,值必须是原始数据类型。
当我们需要他们时:
首选项通常用于保存状态信息和共享数据 在一个应用程序的几个活动中。
共享首选项是android中的存储,可用于存储与功能,用户自定义或其配置文件相关的一些基本内容。
假设您要在应用中保存用户名,以备将来使用。你不能在数据库中保存这么小的东西,所以你最好把它保存在你的首选项中。首选项就像一个文件,您可以在应用程序的生命周期中随时以KEY-VALUE对方式检索值。
再举一个例子,如果您使用whatsapp,我们在那里有一个壁纸选项。无论何时打开whatsapp,应用程序如何知道哪个图像可以作为墙纸。此信息存储在首选项中。每当您清除任何应用程序的数据时,都会删除首选项。
如何使用这些偏好:
final int mode = Activity.MODE_PRIVATE;
final String MYPREFS = "MyPreferences_001";
// create a reference to the shared preferences object
SharedPreferences mySharedPreferences;
// obtain an editor to add data to my SharedPreferences object
SharedPreferences.Editor myEditor;
mySharedPreferences = getSharedPreferences(MYPREFS, 0);
// using this instance you can get any value saved.
mySharedPreferences.getInt("backColor",Color.BLACK); // default value is BLACK set here
编辑共享偏好:
myEditor = mySharedPreferences.edit();
//edit and commit
myEditor.putString("backColor", Color.RED);
myEditor.commit() //very imp.
答案 2 :(得分:1)
正如Artoo Detoo所解释的那样...... Sharedpreferences有点像Web开发中的会话。您可以使用它们将值从一个活动传递到另一个活动,并且只要应用程序正在使用它就会保持这种状态,除非另有更改。
它也用于用户值(登录或注册用户后)。那多少我可以谈论它
答案 3 :(得分:1)
SharedPreference API用于保存键值对。它们将它们存储在文件中,并根据您实例化SharedPreference对象的模式为私有或公共。它们用于存储一小组键值对。这里的键是String类型,值可以是任何原始类型。
PreferenceManager 是Preference API的一部分。 Preference API允许您定义完整的设置UI。此设置UI是XML布局。您使用PreferenceManager来管理此Preference对象的树。它使用SharedPreference API存储用户可能使用您创建的图形布局更改的各种设置。