Java 是共享引用';defaultValue在.xml中定义时始终读取为字符串?

Java 是共享引用';defaultValue在.xml中定义时始终读取为字符串?,java,android,xml,sharedpreferences,Java,Android,Xml,Sharedpreferences,我正在尝试检索默认值: 定义: <integer name="keyOfDefaultValue">2</integer> 实际代码: SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); int intVar = sharedPrefs.getInt(keyOfDefaultValue, fallbackIntValue); 我得到ClassCastE

我正在尝试检索默认值:

定义:

<integer name="keyOfDefaultValue">2</integer>
实际代码:

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
int intVar = sharedPrefs.getInt(keyOfDefaultValue, fallbackIntValue);
我得到
ClassCastException
s,说明我试图将字符串转换为整数。我已经阅读了Android文档中关于默认值的内容:

所以我希望使用正确的类型,但显然我得到了一个字符串

有人能确认.xml中定义的默认值总是作为字符串检索吗?或者你可以给我指一下文档中的一页,上面解释了这一点


如果您检查AOSP代码上的返回值以获得不同类型的首选项,请多谢

EditTextPreference
ListPreference
返回字符串值

SwitchPreference
CheckBoxPreference
返回布尔值

MultiSelectListPreference
返回一组字符串

如果你想改变它,我想你可以随时覆盖它
onGetDefaultValue在您的customPreference中,如果您有一个

fallbackIntValue
是字符串还是整数?@Rani,它是整数,但这不相关,所以我省略了它!我没有看过
getValue()
方法,但现在我看到了它的工作原理。
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
int intVar = sharedPrefs.getInt(keyOfDefaultValue, fallbackIntValue);