我试图检索默认值:
定义:
<integer name="keyOfDefaultValue">2</integer>
引用为:
android:defaultValue="@integer/keyOfDefaultValue"
实际代码:
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
int intVar = sharedPrefs.getInt(keyOfDefaultValue, fallbackIntValue);
我得到ClassCastException
声明我正在尝试将String转换为整数。我已阅读有关默认值的Android文档:
http://developer.android.com/reference/android/preference/Preference.html#attr_android:defaultValue
所以我希望使用正确的类型,但显然我得到一个字符串。
有人可以确认.xml中定义的默认值总是作为字符串检索吗?或者您可以将我指向文档中的一个页面,其中说明了这一点......
由于
答案 0 :(得分:1)
如果您检查AOSP代码的返回值以获取不同类型的首选项
EditTextPreference
,ListPreference
返回字符串值
SwitchPreference
,CheckBoxPreference
返回布尔值
MultiSelectListPreference
返回一组字符串
如果你想改变它,我猜你总是可以改写 你的customPreference中的onGetDefaultValue,如果你有一个