SharedPreferences getString 总是 returns 默认值

SharedPreferences getString always returns default value

这是我的代码:

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, ""));
}

在Logcat中:

JUST SET TO SharedPreferences  

但是当应用程序在断点处停止时,我看到值实际上存储在

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

如何读取该值?谢谢!

我想你在这里切换了键和值 editor.putString(value, forKey);

签名为putString (String key, String value).

问题是您使用 forKey 作为键,它最初是作为值添加到 SharedPreferences 而不是这里的键:

editor.putString(value, forKey);

如您所见,valueforKey

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

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

你应该换一个

editor.putString(forKey, value);

所以 forkey 会起作用