2014-09-02 72 views
0

我有一些數據保存在SharedPreference中。當單擊一個按鈕時,用戶註銷並通過調用pref.clear()ad pref.commit()來清除sharedPreference。當用戶嘗試重新登錄時,編輯器將被調用commit(),但不會保存新值。任何建議爲什麼共享首選項在清除完成後沒有保存?SharedPreference - 清除和讀取

結算部分:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
           SharedPreferences.Editor sa = prefs.edit(); 
           sa.clear(); 
           sa.commit(); 

重新添加部分:

editor.putString("bucket", bucket); 
      editor.putString("profileid", profileid); 
      editor.putString("username", user); 
      editor.putString("password", pass); 
      editor.commit(); 

CLOSED:在底部,但對於其他人正在尋找一個答案的答案,我接受了答案

+0

什麼是'編輯器'?我知道它是'SharedPreferences.Editor',但只是爲了確認你的代碼發佈在你聲明'編輯器'的地方。 – 2014-09-02 23:31:10

回答

0

你是如何初始化編輯器(我asume是SharedPreferences.Editor)。我使用以下來獲取編輯器。

SharedPreferences settings = getActivity().getSharedPreferences("a_string", Activity.MODE_PRIVATE); 
    SharedPreferences.Editor editor = settings.edit(); 

我這樣做的方式與清除和保存我的數據相同。

如果這無助於請求更多信息。

0

其實我的錯,當我啓動我的偏好時出現了一個錯字。對不起人!

0

讓我告訴你如何從SharedPeferences添加/讀取/刪除數據。在您的Activity添加一些數據的工作示例爲SharedPreferences

SharedPreferences prefs = getApplicationContext().getSharedPreferences("yourPrefName",MODE_PRIVATE); 
SharedPreferences.Editor editor = prefs.edit(); 
editor.putString("bucket", bucket); 
editor.putString("profileid", profileid); 
editor.putString("username", user); 
editor.putString("password", pass); 
editor.commit(); 

當用戶你會想要做上述登錄successfully.Now當用戶註銷,您onClickListener內的註銷Button

SharedPreferences settings = getApplicationContext().getSharedPreferences("yourPrefName",MODE_PRIVATE); 
SharedPreferences.Editor editor = settings.edit(); 
editor.clear(); 
editor.commit(); 
Activity的代碼

所以,你應該檢查是否已經設置了210個值。如果已設置,則可以將用戶重定向到主屏幕而無需再次登錄。