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 的方式,因为它们更高效且易于管理。

相关推荐
没有了遇见4 分钟前
DrawerLayout 滑动冲突
android
玲小珑1 小时前
Auto.js 入门指南(六)多线程与异步操作
android·前端
用户2018792831673 小时前
通俗易懂理解Java注解
android
用户2018792831673 小时前
通俗易懂理解泛型
android
linversion3 小时前
如何手动上传Android混淆映射文件Mapping.txt到Firebase
android
慕晨3 小时前
RecyclerView + SnapHelper 滚动差异问题
android
玲小珑3 小时前
Auto.js 入门指南(三)第一个 Auto.js 脚本
android·前端
aningxiaoxixi4 小时前
Android Studio 之基础代码解析
android·ide·android studio
A-花开堪折5 小时前
Android7 Input(十)View 处理Input事件pipeline
android·嵌入式硬件
Shujie_L6 小时前
Android基础回顾】六:安卓显示机制Surface 、 SurfaceFlinger、Choreographer
android