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"。所以你首先檢索字符串,然後將其轉換爲整數。