2016-09-14 56 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)