我读过有关阅读共享偏好的问题:this和this。但是他们仍然需要Context才能访问SharedPreferences。我想知道如何在没有上下文的情况下访问SharedPreferences。提前致谢
答案 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,"");
}