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

相关推荐
Jerry3 小时前
Compose 的阶段
android
Zhangzy@3 小时前
Rust 编译优化选项
android·开发语言·rust
某空m5 小时前
【Android】View滑动的实现
android
芝麻开门-新起点6 小时前
Android 和 iOS 系统版本及开发适配
android·ios·cocoa
2501_915918416 小时前
iOS描述文件功能解析
android·macos·ios·小程序·uni-app·cocoa·iphone
用户69371750013846 小时前
一文彻底搞懂 Android 依赖配置:implementation vs testImplementation,再也不混淆!
android
TimeFine8 小时前
Android WebView暗夜模式适配
android
studyForMokey8 小时前
【Android Activity】生命周期深入理解
android·kotlin
浅影歌年8 小时前
Android 嵌入h5顶部状态栏空白
android
来来走走11 小时前
kotlin学习 lambda编程
android·学习·kotlin