我在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