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()
的部分之外,您在代码中所做的一切似乎都是正确的。基本上,您只需要使用其中一个,而不是两个。您可以参考以了解两者之间的差异。如果可能,请接受答案,如果其他人正在寻求类似的帮助,这将对他们将来有所帮助。:]