运行时获取ClassCastException

时间:2016-10-07 15:23:34

标签: java android classcastexception android-sharedpreferences

这是我的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。

如何修复它,请提示。

1 个答案:

答案 0 :(得分:0)

更改此行

int fileolderthan = sharedPreferences.getInt("number",7);

int fileolderthan = Integer.valueOf(sharedPreferences.getString("number","7"));

即使您设置android:numeric="integer",EditTextPreference也会将值保存为字符串。所以你首先检索字符串,然后将其转换为整数。