我只是想從一個EDITTEXT用戶輸入存儲在共享的偏好,但它不工作:共享首選項? (非常簡單的問題!?)
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int keycode, KeyEvent event) {
Log.v(TAG, keyword.getString("keyword", "mDefault")); //IT LOGS OUT THE DEFAULT STRING EVEN **AFTER** STORING THE PREFERENCES BEFORE
if (keycode == EditorInfo.IME_ACTION_SEND) {
editText.setText(editText.getText().toString());
keywordEditor.putString("keyword", editText.getText().toString());
keywordEditor.commit();
Log.v(TAG, keyword.getString("keyword", "default")); //CORRECT! THIS LINE WORKS
}
}
return true;
});
當我第一次編輯的文字,我會首先得到「mDefault
」的日誌,這是正常的,因爲沒有任何東西存儲在共享首選項中。
然後,我在共享首選項中存儲了一些內容,並確保它存儲,我登錄並獲取我輸入內容的日誌。 這意味着存儲的共享偏好數據WAS。
繼承人的問題:我已經存儲在共享偏好的東西后,我去一個不同的活動,我回來了,並且存儲在共享偏好的所有數據是不見了!
在瀏覽活動後,第一個日誌仍然顯示mDefault
。
問題是什麼?
編輯:
這裏是我的實例:
onCreate
:
keyword = PreferenceManager.getDefaultSharedPreferences(this); //Making a shared preferences
keywordEditor = keyword.edit();
你怎麼了'keyword'實例? – Codebender
@Codebender在'onCreate':'keyword = PreferenceManager.getDefaultSharedPreferences(this); //創建共享偏好 keywordEditor = keyword.edit();' –
@Codebender我編輯了我的問題 –