Java 提交()后未更新SharedReference

Java 提交()后未更新SharedReference,java,android,sharedpreferences,Java,Android,Sharedpreferences,我知道这个问题已经有很多答案了,但我还没有找到问题的答案 这是我的密码: SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE); //Creating editor to store values to shared preferences SharedPreferences.Editor

我知道这个问题已经有很多答案了,但我还没有找到问题的答案

这是我的密码:

SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE);

//Creating editor to store values to shared preferences
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();

//Adding values to editor
editor.putBoolean(Config.LOGGEDIN_SHARED_PREF, true);
editor.putString(Config.PHONE_SHARED_PREF, phoneNo);
Log.d("debug", "config "+Config.PHONE_SHARED_PREF);
Log.d("debug", "config "+phoneNo);

//Saving values to editor
editor.apply();
editor.commit();
我的理解是,
editor.putString(Config.PHONE\u SHARED\u PREF,phoneNo)
意味着将
phoneNo
的值保存到
PHONE\u SHARED\u PREF
中。如果我错了,请纠正我

但是在日志中,
Config.PHONE\u SHARED\u PREF
打印默认值,而不是
phoneNo
中分配的新值。这意味着
phone的值没有正确保存,不是吗

有人能解释一下我的代码有什么问题吗/

试试这个

SharedPreferences sharedPreferences = getActivity().getSharedPreferences(Config.SHARED_PREF_NAME, Activity.MODE_PRIVATE);

sharedPreferences.edit().putBoolean(Config.LOGGEDIN_SHARED_PREF, true).commit();
sharedPreferences.edit().putString(Config.PHONE_SHARED_PREF, phoneNo).commit();
试试这个

SharedPreferences sharedPreferences = getActivity().getSharedPreferences(Config.SHARED_PREF_NAME, Activity.MODE_PRIVATE);

sharedPreferences.edit().putBoolean(Config.LOGGEDIN_SHARED_PREF, true).commit();
sharedPreferences.edit().putString(Config.PHONE_SHARED_PREF, phoneNo).commit();
试试上面的方法


尝试上述操作。

commit()
apply()
是相同的,后者不返回布尔值。请删除其中一个,然后重试。您可以使用
editor.getString(Config.PHONE\u SHARED\u PREF,“”)
获取该值。如果密钥不存在,则返回第二个参数。很抱歉,请尝试
SharedReferences.getString(…)
。如果是这种情况,则表示首选项不存在。使用
getAll()
方法检查首选项是否包含所需的键和值。
commit()
apply()
是相同的,后者不返回布尔值。请删除其中一个,然后重试。您可以使用
editor.getString(Config.PHONE\u SHARED\u PREF,“”)
获取该值。如果密钥不存在,则返回第二个参数。很抱歉,请尝试
SharedReferences.getString(…)
。如果是这种情况,则表示首选项不存在。使用
getAll()
方法检查您的首选项是否包含所需的键和值。此方法有效!谢谢介意解释一下吗?在共享首选项中仍然是新的:)除了包含
apply()
commit()
的部分之外,您在代码中所做的一切似乎都是正确的。基本上,您只需要使用其中一个,而不是两个。您可以参考以了解两者之间的差异。如果可能,请接受答案,如果其他人正在寻求类似的帮助,这将对他们将来有所帮助。:]这个有效!谢谢介意解释一下吗?在共享首选项中仍然是新的:)除了包含
apply()
commit()
的部分之外,您在代码中所做的一切似乎都是正确的。基本上,您只需要使用其中一个,而不是两个。您可以参考以了解两者之间的差异。如果可能,请接受答案,如果其他人正在寻求类似的帮助,这将对他们将来有所帮助。:]