在没有上下文的情况下访问SharedPreferences

时间:2012-06-29 20:38:06

标签: android

我读过有关阅读共享偏好的问题:thisthis。但是他们仍然需要Context才能访问SharedPreferences。我想知道如何在没有上下文的情况下访问SharedPreferences。提前致谢

3 个答案:

答案 0 :(得分:11)

我首先通过检索ApplicationContext(this)来解决我的问题,然后使用该上下文来获取SharedPreferences。谢谢K-ballo。

答案 1 :(得分:4)

申请类:

<application android:name=".MyApplication"
    ...
/>

在AndroidManifest中声明应用程序:

PreferenceManager.getDefaultSharedPreferences(MyApplication.getAppContext());

用法:

{{1}}

答案 2 :(得分:2)

我们可以让SharedPreference实例在具有Getters和Setter的帮助器类中使用,而不涉及上下文解释here

MainActivity 添加

public static SharedPreferences preferences;
preferences = getSharedPreferences( getPackageName() + "_preferences", MODE_PRIVATE);

然后在 PreferenceHelper 中使用set并获取为

public static void setName(String value) {
    MainActivity.preferences.edit().putString(KEY_DEMO_NAME, value ).commit();
}
public static String getName() {
    return MainActivity.preferences.getString(KEY_DEMO_NAME,"");
}