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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Kotlin构造函数android中的Parcelable读取List列表相关的知识,希望对你有一定的参考价值。

我想基本上从Kotlin构造函数中的包中读取列表列表,我的类结构如下:

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

以上是关于从Kotlin构造函数android中的Parcelable读取List列表的主要内容,如果未能解决你的问题,请参考以下文章

Android开发学习之路--Kotlin之类及对象

Kotlin 中的私有构造函数

Kotlin 中带参数的单例

如何使用 Kotlin 创建自定义视图的构造函数

Kotlin语言中的继承与构造函数(详解)

七,Kotlin常见高阶函数用法