0

这是我preference.xml获得ClassCastException异常,同时运行

<EditTextPreference 
     android:defaultValue="3" 
     android:key="number" 
     android:numeric="integer" 
     android:summary="Enter how many Days older files" 
     android:title="Set Days" /> 

代码,当我试图让与sharedpreference值,如下

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

获取错误上运行的代码的java.lang .ClassCastException:java.lang.String不能转换为java.lang.Integer。

如何解决它,任何提示请。

+0

默认值始终是字符串,即使类型是整数 – njzk2

回答

0

改变这一行

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

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

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