2012-01-31 167 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