我知道這個問題已經有噸噸的答案,但我還沒有找到我的問題的答案。SharedPreference提交後未更新()
這裏是我的代碼:
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_SHARED_PREF, phoneNo)
意味着節省phoneNo
價值爲PHONE_SHARED_PREF
。如果我錯了,請糾正我。
但是,在Log中,Config.PHONE_SHARED_PREF
顯示默認值,而不是在phoneNo
中分配的新值。這意味着phoneNo
的值沒有正確保存,不是?
有人可以向我解釋我的代碼有什麼問題嗎? :/
'commit()'和'apply()'是相同的,後者不返回布爾值。刪除並重試。您可以使用'editor.getString(Config.PHONE_SHARED_PREF,「」)''來獲取值。如果密鑰不存在,則返回第二個參數。 –
對不起,請嘗試'sharedPreferences.getString(...)'。 –
它什麼也沒有返回(第二參數) – August