sharedPreference键上的defaultValue始终为0

时间:2011-11-16 08:09:57

标签: android

尽管我在pref键不存在时尝试返回不同的值,但defaultValue始终返回0。我想知道为什么。这是我的代码 -

public static final String PREFS_NAME = "MyPrefsFile";
public static final String PREFS_OLD_TRIM = "trimName";
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
int trim_val = settings.getInt(PREFS_OLD_TRIM, 7);

我肯定知道,在初始运行中,没有pref键 - PREFS_OLD_TRIM。所以,我期待trim_val得到一个值7.但是它得到了0。

我错过了什么吗?谢谢。我的目标是API级别8设备。

2 个答案:

答案 0 :(得分:0)

为了安全起见,请尝试在每次运行时将PREFS_OLD_TRIM更改为随机值 - 这将确保您的首选项文件中没有此类密钥。

答案 1 :(得分:0)

有一点可以肯定的是,Preference总是只返回默认值,直到你为它提供一些值并提交(保存)。因此,在这种情况下,您尝试检索共享首选项中不存在的值,这显然只会返回默认值,尽管您可能要求它返回任何值。