Android -- 使用Sharepreference保存List储存失败,原因是包含Bitmap,drawable等类型数据

1.报错信息如下:

class android.content.res.ColorStateList declares multiple JSON fields named mChangingConfigurations

2.Bean类属性如下:

data class AppInfoBean(
val appName: String?,
val appIcon: Drawable,
val appPackage: String?,
val appActivity: String? = null,
val thirdApp: Boolean = false
) : Parcelable {

经过一番百度搜刮,终于找到了原因所在,就是list在存储时需要序列化,但是Drawable类型不支持,我去,这是很基础的知识阿!

3.解决思路很简单,就是

  • 可以通过将 Drawable 转换为 Bitmap、资源 ID 或 Base64 字符串间接实现。

  • 对于 List<Drawable>,可以将每个 Drawable 转换为 byte[]String,然后存储为 List<byte[]>List<String>

  • 推荐使用 Bitmap 或资源 ID 的方式,因为它们更高效且易于管理。

相关推荐
雨白1 小时前
OkHttp 源码解析:enqueue 非同步流程与 Dispatcher 调度
android
风往哪边走2 小时前
自定义仿日历组件弹框
android
没有了遇见2 小时前
Android 外接 U 盘开发实战:从权限到文件复制
android
Monkey-旭3 小时前
Android 文件存储机制全解析
android·文件存储·kolin
zhangphil3 小时前
Android Coil 3拦截器Interceptor计算单次请求耗时,Kotlin
android·kotlin
DokiDoki之父4 小时前
多线程—飞机大战排行榜功能(2.0版本)
android·java·开发语言
用户2018792831676 小时前
强制关闭生命周期延时的Activity实现思路
android
用户2018792831676 小时前
Activity后生命周期暂停问题
android
用户2018792831676 小时前
浅析:WindowManager添加的 View 的事件传递机制
android
顾林海6 小时前
从"面条代码"到"精装别墅":Android MVPS架构的逆袭之路
android·面试·架构