我正在尝试使用
将颜色保存到SharedPreferences
public static void saveChannelImageColor(int color) {
saveInt(CHANNEL_ID1, color);
}
public static int getChannelImageColor() {
return getInt(CHANNEL_ID1, 0xff0000ff);
}
但是当我试图获得颜色时它会给出错误
java.lang.ClassCastException:java.lang.String无法强制转换为 java.lang.Integer at android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:239)
答案 0 :(得分:0)
错误几乎是自我解释,你正在为字符串赋值。您需要执行以下操作之一
将颜色另存为字符串
public static void saveChannelImageColor(int color) {
saveInt(CHANNEL_ID1, String.valueOf(color));
}
public static int getChannelImageColor() {
return getString(CHANNEL_ID1, "0xff0000ff");
}
无论您使用的是getChannelImageColor,它都会返回一个int,因此您可以保存/使用/将其分配给int变量。
答案 1 :(得分:0)
我知道为时已晚,但希望对您有所帮助。
科特琳代码:
在“首选项”参考中设置颜色
lateinit var mPreferences: SharedPreferences
lateinit var mEditor: SharedPreferences.Editor
// initPreferences with Context
mEditor.putInt(KEY_COLOR_PRIMARY, R.color.colorPrimary)
mEditor.commit()
获取并设置为背景
view.background = mPreferences.getInt(KEY_COLOR_PRIMARY,
R.color.colorPrimary))