SharedPreferences getString始终返回默认值

时间:2015-05-09 21:46:57

标签: android sharedpreferences

这是我的代码:

> summary(hival)
   Mode   FALSE    TRUE    NA's 
logical    4367      53    2076 
> 
Logcat中的

public void saveValue(String value, String forKey) {
    SharedPreferences.Editor editor = getSharedPreferences().edit();
    editor.putString(value, forKey);
    editor.commit();
    SharedPreferences p = getSharedPreferences();
    System.out.println("JUST SET TO SharedPreferences" + p.getString(forKey, ""));
}

但当app在断点处停止时,我看到值实际存储在

debugger output

我在模拟器上运行应用程序。

我如何阅读这些值?谢谢!

2 个答案:

答案 0 :(得分:1)

我认为您在此处切换了密钥和值editor.putString(value, forKey);

签名为putString (String key, String value)

答案 1 :(得分:1)

问题在于您使用forKey作为密钥,该密钥最初是作为SharedPreferences中的值添加的,而不是此处的关键字:

editor.putString(value, forKey);

如您所见,valueforKey

因此,当您从SharedPreferences获取值时,您应该使用该键来获取值:

p.getString(value, "") //dont use forKey as the value

你应该互相切换

editor.putString(forKey, value);

因此forkey将起作用