Serialize icon indicating copy to clipboard operation
Serialize copied to clipboard

每次覆盖安装应用后,数据模型集合都会变成默认值

Open SaltedFish-Extreme opened this issue 2 years ago • 8 comments

这是保存在Serialize里的数据

var ConfigList: ArrayList<Model> by serialLazy(
        arrayListOf(
            PrintModel("", true, true),
            PrintModel("", true,  true),
            PrintModel("",  true, true)
        )
    )

这是修改数据后重新保存的操作

AppConfig.ConfigList = adapter.data as ArrayList<Model>

每次打开app后数据是没问题的,但是覆盖安装后数据就没了,请问是这样写的吗😂

SaltedFish-Extreme avatar Jun 22 '22 07:06 SaltedFish-Extreme

我刚才看了下,好像提示不可序列化异常 NotSerializableException 但是我在model类上加了@Parcelize并且继承了Parcelable,还是这么说😥

SaltedFish-Extreme avatar Jun 22 '22 08:06 SaltedFish-Extreme

好像只能存基本类型的list或者是数据类,不能存数据类的集合,这咋办😥

SaltedFish-Extreme avatar Jun 22 '22 09:06 SaltedFish-Extreme

Model实现了序列化接口吗?

liangjingkanji avatar Jun 22 '22 09:06 liangjingkanji

Model实现了序列化接口吗?

实现了

@Parcelize
data class PrintConfigModel(var name: String, var enabled: Boolean, var required: Boolean) : Parcelable

SaltedFish-Extreme avatar Jun 22 '22 09:06 SaltedFish-Extreme

你fork仓库复现问题

liangjingkanji avatar Jun 22 '22 10:06 liangjingkanji

你fork仓库复现问题

https://github.com/SaltedFish-Extreme/Serialize.git

其实就一行代码

serialize("name" to arrayListOf(TestModel("aaa",true)))

SaltedFish-Extreme avatar Jun 23 '22 01:06 SaltedFish-Extreme

java.io.NotSerializableException: com.drake.serialize.sample.model.TestModel

SaltedFish-Extreme avatar Jun 23 '22 01:06 SaltedFish-Extreme

@liangjingkanji 老哥不行了吗?要不我就转json用吧😥

SaltedFish-Extreme avatar Jun 24 '22 01:06 SaltedFish-Extreme

我也遇到这个问题了,var commandHistoryList:MutableList<String> by serial(default = mutableListOf(), name = "command_history") ,点击AS run后数据没了

Linnnnnn avatar Oct 27 '22 08:10 Linnnnnn

我也遇到这个问题了,var commandHistoryList:MutableList by serial(default = mutableListOf(), name = "command_history") ,点击AS run后数据没了

你也在list里装的对象吗?我把对象集合转成json存取就好了😂

SaltedFish-Extreme avatar Oct 27 '22 08:10 SaltedFish-Extreme

List里面的对象是否序列化(父类序列化是无效的), 不过我最近计划重构序列化实现了

liangjingkanji avatar Oct 27 '22 08:10 liangjingkanji

我装的是String

Linnnnnn avatar Oct 27 '22 08:10 Linnnnnn

我装的是String

你装字符串的话,你得重新赋值啊,文档里都写着呢😂

SaltedFish-Extreme avatar Oct 27 '22 08:10 SaltedFish-Extreme

我装的是String

你装字符串的话,你得重新赋值啊,文档里都写着呢😂

啊,我去看清楚点

Linnnnnn avatar Oct 27 '22 08:10 Linnnnnn

//改变序列化对象内的字段要求重新赋值
AppConfig.SearchHistory.apply {
//改变序列化对象内的字段要求重新赋值
AppConfig.SearchHistory = this
}

SaltedFish-Extreme avatar Oct 27 '22 08:10 SaltedFish-Extreme