2016-09-14 98 views
1

我試圖用如何保存顏色SharedPreferences的Android

public static void saveChannelImageColor(int color) { 
    saveInt(CHANNEL_ID1, color); 
} 

public static int getChannelImageColor() { 
    return getInt(CHANNEL_ID1, 0xff0000ff); 
} 

保存顏色SharedPreferences但是,當我試圖得到它給錯誤

java.lang.ClassCastException顏色:java.lang.String中不能被轉換到 java.lang.Integer中在 android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:239)

+0

您確定,您的顏色值在您的偏好中保存爲int值嗎?因爲你的默認值** 0xff0000ff **不是整數。 –

+0

您可以通過保存和從SharedPreferences讀取來發布相關代碼嗎? – adalPaRi

+0

不要將顏色保存爲int,而要保存爲字符串,然後將其作爲字符串檢索並進行必要的處理。 – sumandas

回答

0

錯誤是非常多的自我解釋性,你正在給字符串分配一個int值。您需要。無論您在使用getChannelImageColor所以你保存/應用/把它分配給一個int變量它返回一個int完成以下

  1. 保存顏色之一,因爲字符串

    public static void saveChannelImageColor(int color) { 
        saveInt(CHANNEL_ID1, String.valueOf(color)); 
    } 
    
    public static int getChannelImageColor() { 
        return getString(CHANNEL_ID1, "0xff0000ff"); 
    } 
    
0

您可以存儲顏色鏈接。是整數。因此,只需使用您的代碼,如 saveChannelImageColor(R.color.black)