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);
如您所见,value
是 键 而 forKey
是 值
因此,当您从 SharedPreferences
获取值时,您应该使用键来获取值:
p.getString(value, "") //dont use forKey as the value
或你应该换一个
editor.putString(forKey, value);
所以 forkey
会起作用
这是我的代码:
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);
如您所见,value
是 键 而 forKey
是 值
因此,当您从 SharedPreferences
获取值时,您应该使用键来获取值:
p.getString(value, "") //dont use forKey as the value
或你应该换一个
editor.putString(forKey, value);
所以 forkey
会起作用