String getString(String name, String defValue){...}
这是getString(...)
SharedPreferences
方法的定义所以我认为如果我在下面运行代码,它会返回1,这是可能的:
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
Timber.e(pref.getString("new", "1"));
Timber.e(pref.getString("new", "100"));
因为它第一次是空的,所以" 1"将存储,之后由于它具有价值(" 1"),它将返回它的值(" 1")而不是默认值(" 100&# 34)
但它返回" 1"和" 100"并且"new"
未存储在我的pref文件中(位于data/data/...
)
我在这段代码中理解错误或出了什么问题吗?
答案 0 :(得分:1)
使用只能使用getString获取数据。
使用Editor.commit();
Editor editor = settings.edit();
editor.putString("someKey", "someVal");
editor.commit();
之后才能获得此值。
String value = settings.getString("someKey", "someDefaultValueIfThisKeyNotUsedBefore");
在此示例中,如果事先使用"someVal"
,您将收到commit
。
答案 1 :(得分:1)
你必须把" Something"到SharedPreferences.Editor,并提交它们。
pref.getString不会存储任何内容。
请参阅以下链接: https://developer.android.com/reference/android/content/SharedPreferences.html https://developer.android.com/reference/android/content/SharedPreferences.Editor.html