我已阅读问题:this和this关于阅读共享偏好。但是他们仍然需要 Context 来访问 SharedPreferences。我想知道如何在没有上下文的情况下访问 SharedPreferences。提前致谢
问问题
23914 次
3 回答
15
我通过首先检索 ApplicationContext ( this )来解决我的问题,然后使用该上下文来获取 SharedPreferences。感谢 K-ballo。
于 2012-06-29T21:09:00.177 回答
7
应用类:
import android.app.Application;
import android.content.Context;
public class MyApplication extends Application {
private static Context mContext;
public void onCreate() {
super.onCreate();
mContext = getApplicationContext();
}
public static Context getAppContext() {
return mContext;
}
}
在 AndroidManifest 中声明应用程序:
<application android:name=".MyApplication"
...
/>
用法:
PreferenceManager.getDefaultSharedPreferences(MyApplication.getAppContext());
于 2017-10-29T15:01:26.483 回答
4
我们可以在具有 Getter 和 Setter 的帮助器类中使用 SharedPreference 实例,而不涉及此处解释的上下文
在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,"");
}
于 2018-05-03T10:45:56.640 回答