这是我的preference.xml代码
<EditTextPreference
android:defaultValue="3"
android:key="number"
android:numeric="integer"
android:summary="Enter how many Days older files"
android:title="Set Days" />
当我尝试使用共享偏好获取其值时,如下所示
int fileolderthan = sharedPreferences.getInt("number",7);
运行代码java.lang.ClassCastException时出错:java.lang.String无法强制转换为java.lang.Integer。
如何修复它,请提示。
答案 0 :(得分:0)
更改此行
int fileolderthan = sharedPreferences.getInt("number",7);
与
int fileolderthan = Integer.valueOf(sharedPreferences.getString("number","7"));
即使您设置android:numeric="integer"
,EditTextPreference也会将值保存为字符串。所以你首先检索字符串,然后将其转换为整数。