android - 在 Kotlin 构造函数 android 中从 Parcelable 读取 List 列表

标签 android kotlin constructor parcelable

我基本上想从 Kotlin 构造函数中的 Parcel 读取 List of List,我的类结构如下:

data class Sports(
    var media: List<List<MediaObject>>?,
    var likes: Int) : Parcelable {
constructor(parcel: Parcel) : this(
        TODO("media"),
        parcel.readInt(),
)

override fun writeToParcel(parcel: Parcel, flags: Int) {
    if (media == null || media!!.isEmpty()) {
        parcel.writeInt(0)
    } else {
        parcel.writeInt(media!!.size)
        for (mediaObjects in media!!) {
            parcel.writeTypedList(mediaObjects)
        }
    }
    parcel.writeInt(likes)
}

override fun describeContents(): Int {
    return 0
}

companion object CREATOR : Parcelable.Creator<Sports> {
    override fun createFromParcel(parcel: Parcel): Sports {
        return Sports(parcel)
    }

    override fun newArray(size: Int): Array<Sports?> {
        return arrayOfNulls(size)
    }
}}

我有一个List<List<MediaObject>>我想从包裹中读取它,我们怎样才能实现这一点,我想我们可以有一些内联函数,但不确定我们将如何做到这一点?

如果 List<List<>>,Kotlin 会自动添加 TODO类型对象。

最佳答案

在 Kotlin 1.1.4 中添加了带有 @Parcelize 注解的 Parcelable 支持

这是更方便的处理方式

检查一下:

https://kotlinlang.org/docs/tutorials/android-plugin.html#parcelable

关于android - 在 Kotlin 构造函数 android 中从 Parcelable 读取 List 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54647897/

相关文章:

kotlin - Fabric.io 上传不适用于 crashlytics 和 kotlin

c++ - gcc名称修改中的 "destructor group"符号是什么

java - 尝试在每次点击时显示颜色名称检查我的代码

android - 添加firebase_messaging插件后,Gradle构建失败

android - 如果 auth 失败,如何显示 toast jetpack compose firebase if else @Composable 调用只能在 @Composable 函数的上下文中发生

c++ - 使用多个构造函数调用初始化成员变量

javascript - typescript ,使用没有构造函数的类

Android M 6.0 - SecurityException 试图删除帐户

android - 切换按钮事件不适用于各种设备

android - API 小于 21 的点击波纹效应