猿问

如何从Android中的PreferenceActivity获得SharedPreferences?

如何从Android中的PreferenceActivity获得SharedPreferences?

我使用PreferenceActivity来显示我的应用程序的一些设置。我通过XML文件膨胀设置,使我的onCreate(和完整的类方法)看起来如下所示:

public class FooActivity extends PreferenceActivity {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        addPreferencesFromResource(R.xml.preference);
    }}

的javadoc优先活动 优先框架国家

当用户与它们交互时,这些首选项将自动保存到SharedPreferences。要检索此活动中的偏好层次结构将使用的SharedPreferences实例,请使用与此活动相同的包中的上下文调用getDefaultSharedPreferences(android.content.Context)。

但是我是如何在另一个活动中得到SharedPreference的名字的呢?我只能打电话

getSharedPreferences(name, mode)

在另一个活动中,但是我需要SharedPreference的名称,它是PreferenceActivity使用的。名字是什么,或者如何检索?


波斯汪
浏览 692回答 3
3回答

翻过高山走不出你

如果您无法访问getDefaultSharedPreferenes(),你可以用getSharedPreferences(name, mode)相反,你只需要传递正确的名字。Android创建这个名称(可能基于项目的包名?)。您可以通过将以下代码放入SettingsActivity onCreate()看到什么preferencesName是。String preferencesName = this.getPreferenceManager().getSharedPreferencesName();字符串应该类似于com.example.projectname_preferences..在项目的某个地方编写硬代码,并将其传递给getSharedPreferences()你应该可以走了。
随时随地看视频慕课网APP

相关分类

Android
我要回答