我正在使用PreferenceActivity来显示我的应用程序的一些设置。我通过一个xml文件扩展设置,因此我的onCreate(和complete类方法)如下所示:
公共类FooActivity扩展了PreferenceActivity{
@凌驾
创建公共空间(捆绑冰柱){
超级冰柱;
addPreferencesFromResource(R.xml.preference);
}
}
首选项活动的javadochttp://developer.android.com/reference/android/preference/PreferenceFragment.html“rel=”noreferrer“>首选项片段
当用户与这些首选项交互时,这些首选项将自动保存到SharedReferences。要检索此活动中的首选项层次结构将使用的SharedReferences实例,请使用与此活动相同的包中的上下文调用GetDefaultSharedReferences(android.content.Context)
但是我如何在另一个活动中获得SharedReference的名称呢?我只能打电话
GetSharedReferences(名称、模式)
在其他活动中,但我需要PreferenceActivity使用的SharedReference的名称。名称是什么或如何检索它
SharedPreferences=PreferenceManager.getDefaultSharedPreferences(此);
//然后你用
prefs.getBoolean(“keystring”,true);
更新
根据共享首选项| Android开发者教程(第13部分)作者:Sai Geetha M N
许多应用程序可能会提供一种方法来捕获网络上的用户首选项
特定应用程序或活动的设置。支持
因此,Android提供了一组简单的API首选项通常是名称-值对。它们可以存储为
应用程序中不同活动的“共享首选项”(注意
目前无法跨进程共享)。也可能是这样
特定于某个活动需要存储的东西
-
共享首选项:共享首选项可由应用程序的所有组件(活动、服务等)使用
-
活动处理的首选项:这些首选项只能在特定活动中使用,不能由应用程序的其他组件使用
共享首选项:
共享首选项通过Context类的getSharedReferences方法进行管理。首选项存储在默认文件(1)中,或者您可以指定用于引用首选项的文件名(2)
(1) 建议使用默认模式,而不指定文件名
SharedReferences首选项=PreferenceManager.GetDefaultSharedReferences(上下文);
(2) 下面是指定文件名时获取实例的方式
公共静态最终字符串PREF\u FILE\u NAME=“PrefFile”;
SharedReferences首选项=GetSharedReferences(首选文件名,模式专用);
模式\u PRIVATE是首选项的操作模式。这是默认模式,意味着创建的文件将仅由调用应用程序访问。支持的其他两种模式是MODE\u WORLD\u READABLE和MODE\u WORLD\u WRITEABLE。在模式\u WORLD\u READABLE中,其他应用程序可以读取创建的文件,但不能修改它。在MODE\u WORLD\u WRITEABLE的情况下,其他应用程序也对创建的文件具有写入权限
最后,拥有preferences实例后,下面是如何从preferences中检索存储值的方法:
int-storedPreference=preferences.getInt(“storedInt”,0);
要在首选项文件SharedReference.Editor中存储值,必须使用对象编辑器是SharedReference类中的嵌套接口
SharedReferences.Editor=preferences.edit();
editor.putInt(“storedInt”,storedReference);//要存储的值
commit();
编辑器还支持remove()和clear()等方法从文件中删除首选项值
活动首选项:
共享首选项可由其他应用程序组件使用。但是,如果您不需要与其他组件共享首选项,并且希望拥有活动专用首选项,则可以借助活动的getPreferences()方法来实现。getPreference方法使用带有活动类名称的getSharedReferences()方法作为首选项文件名
下面是获取首选项的代码
SharedReferences preferences=getPreferences(模式\私人);
int storedPreference=preferences.getInt(“storedInt”,0);
存储值的代码与共享首选项的代码相同
SharedReferences preferences=getPreference(模式\私有);
SharedReferences.Editor=首选项.edit();
editor.putInt(“storedInt”,storedReference);//要存储的值
commit();
您还可以使用其他方法,如在数据库中存储活动状态。注意Android还包含一个名为Android.preference的包。该包定义用于实现应用程序首选项UI的类
要查看更多示例,请查看Android的数据存储在开发者网站上发布