2012-01-31 211 views
0

我正在開發一個Android應用程序,我嘗試使用sharedPreference概念保存一些值。我只是在嘗試將某些東西保存到SharedPreference中的基本事情。但它不工作。以下是我正在嘗試做的:Android共享首選項不起作用

SharedPreferences preferences = getSharedPreferences(SHARED_PREF_NAME,0); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putString(SHARED_PREF_USER_NAME, "username"); 
editor.putString(SHARED_PREF_PASSWORD, "password"); 
editor.commit(); 
System.out.println("SHARED_PREF_USER_NAME ::" + 
        preferences.getString(SHARED_PREF_USER_NAME, "")); 
System.out.println("SHARED_PREF_PASSWORD ::" + 
        preferences.getString(SHARED_PREF_PASSWORD, "")); 

就在代碼下面,我試圖打印保存到SharedPreference中的值。但是我得到空字符串。

+0

'commit()'返回一個布爾值,告訴你偏好是否被寫入永久內存。也許打印結果? – Glitch 2012-01-31 13:50:36

+0

這有可能是你與價值觀混淆? 'editor.putString(key,value)'是正確的。似乎你換了兩個字符串。 :) – Leandros 2012-01-31 13:56:15

回答

1

你的代碼接縫沒問題,我在一個測試項目上運行它並得到正確的輸出。也許這是關於你的偏好字符串?它們是否包含空格?

意思是如果String SHARED_PREF_USER_NAME = "user name"然後將其更改爲"username"並嘗試。

-1

您可以使用此代碼。

SharedPreferences preferences = context.getSharedPreferences(SHARED_PREF_NAME,0); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putString("username",SHARED_PREF_USER_NAME); 
editor.putString("password",SHARED_PREF_PASSWORD); 
editor.commit(); 
System.out.println("SHARED_PREF_USER_NAME ::" + 
        preferences.getString(SHARED_PREF_USER_NAME, "")); 
System.out.println("SHARED_PREF_PASSWORD ::" + 
        preferences.getString(SHARED_PREF_PASSWORD, "")); 
+0

這是錯的,你混淆了關鍵和價值。 – Thommy 2012-01-31 14:16:32

+0

那是什麼可能是問題?! – Leandros 2012-01-31 14:17:35