我尝试使用serializable和parcelable存储数组列表数据,但在这两种情况下,我都使用getParcelable和getSerializable获取数据。由于@Deprecated或Type Mismatch,我收到错误。
val time1ArrayTennis: ArrayList<TimeArr>
time1ArrayTennis = savedInstanceState?.getSerializable("time1") as ArrayList<*>
//TimeArr is data class
data class TimeArr(
val time1 : Int
) : Serializable
有人可以请帮助如何在一个简单的方式,我可以保存和恢复数据时,屏幕旋转?谢谢
1条答案
按热度按时间xnifntxz1#
在你的代码片段中,不清楚什么是
TimeArr
。你可能会得到一个错误,因为它没有实现Parcelable
接口。你至少有两个选择:1.为
TimeArr
类实现Parcelable
接口。然后使用outState.putParcelableArrayList("time1", time1ArrayTennis)
将数组存储在Actiivty.onSaveInstanceState()
方法中。然后在onRestoreInstanceState(savedInstanceState: Bundle)
中重新创建Activity后从Bundle
中获取1.将此数据保存在ViewModel中:
您的ViewModel类:
您的活动类别: