我有四个Activity
:MainActivity
、HomeActivity
、SecondActivity
、ThirdActivity
.
我使用 MainActivity
作为欢迎屏幕,我的应用程序从 HomeActivity 开始。我在 HomeActivity
中定义了我的 SharedPreferences
:
外部OnCreate
方法:
SharedPreferences settings;
SharedPreferences.Editor editor;
在OnCreate
内部:
settings = getSharedPreferences("app_settings", Context.MODE_APPEND);
editor = settings.edit();
我的问题是我的 SharedPreferences
仅适用于 HomeActivity
。
我也想在 SecondActivity
中调用我的 sharedPreferences
。
我应该做什么?
最佳答案
您可以像这样使用 SharedPreferences 实现单例
public class SPManager {
private static final String TAG = SPManager.class.getName();
private static SPManager instance;
private Context mContext;
private SharedPreferences mPrefs;
private static final String PREF_NAME = "com.package.app";
private static final String KEY_NAME = "user_name";
public static SPManager getInstance(Context context) {
if (instance == null) {
instance = new SPManager(context);
}
return instance;
}
private SPManager(Context context) {
mContext = context;
mPrefs = mContext.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
}
// Example
public void addName(String name) {
mPrefs.edit().putString(KEY_NAME, name).apply();
}
public String getName() {
return mPrefs.getString(KEY_NAME, "John Doe");
}
}
您也可以像这样使用这个单例:SPManager.getInstance(context).getName();
使用和更新都很简单。
希望能帮到你。
关于java - 我应该在 MainActivity 中定义 SharedPreferences 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44691549/