我在SharedPreferences中通過SettingsHelper類設置一個字符串,如下所示。我已經通過在設置後立即獲取字符串來驗證它實際上已被設置。SharedPreferences值在新實例後返回null
創建了SettingsHelper類的新實例。
然後我試圖檢索字符串我設置,但它出現null。
可以getName返回null,因爲我創建了SettingsHelper類的新實例?
public class SettingsHelper extends Application {
private static Context context;
Context ctx;
public void onCreate() {
super.onCreate();
context = getApplicationContext();
ctx = context;
}
public static Context getAppContext() {
return context;
}
public SettingsHelper() {
this.ctx = context;
}
public String getName() {
return PreferenceManager.getDefaultSharedPreferences(ctx).getString("myKey", "null");
}
public void setName(String name) {
PreferenceManager.getDefaultSharedPreferences(ctx).edit().putString("myKey", name).commit();
}
}
活動A
SettingsHelper settingsHelper = new SettingsHelper();
settingsHelper.setName("John");
B類
SettingsHelper settingsHelper = new SettingsHelper();
settingsHelper.getName(); //null
你有沒有真的開始活動A? –
是的。我已經驗證該名稱已在活動A中設置。 – HappyPoofySquirrel