创建 Parcelable 数据 class

Create data class that is Parcelable

我正在使用 Kotlin 开发 Android 项目。我想创建一个实现 Parcelable 接口的模型 class。这是我试过的:

@Parcelize
data class School(
    @Expose val name: String?,
    @Expose val address: String?,
): Parcelable

但我收到编译器错误提示 "Class School is not abstract and does not implement abstract memeber public abstract fun writeToParcel(p0: Parcel!, p1: Int):Unit defined in android.os.Parcelable"。

我明白错误的意思。但是如何摆脱这个错误呢?我的 Kotlin 版本是 1.3.50

添加

androidExtensions {
    experimental = true
}

到您的应用程序中的 Android 区块 build.gradle。

检查你是否添加了这个

 androidExtensions {
    experimental = true
}

并尝试像这样实现 Parcelable

class School(var name:String, var address:String):Parcelable

像这样传递数据

 val school = School("demo","demo")
        val intent = Intent(this, activityB::class.java)
        intent.putExtra("schooldata",school)
        startActivity(intent)

像这样

 var school = intent.extras.getParcelable<School>("schooldata")
    schooldata.setText("${school.name}"+"\n"+"${school.address}")