Android,如果没有pref

时间:2016-10-27 09:44:41

标签: android sharedpreferences

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/...) 我在这段代码中理解错误或出了什么问题吗?

2 个答案:

答案 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