【问题标题】:Create data class that is Parcelable创建 Parcelable 的数据类
【发布时间】:2019-09-21 10:56:49
【问题描述】:

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

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

但是我得到编译器错误,说“Class School 不是抽象的,并且没有实现在android.os.Parcelable 中定义的抽象成员public abstract fun writeToParcel(p0: Parcel!, p1: Int):Unit”。

我明白错误在说什么。但是如何摆脱这个错误呢?我的 Kotlin 版本是 1.3.50

【问题讨论】:

    标签: android kotlin parcelable


    【解决方案1】:

    添加

    androidExtensions {
        experimental = true
    }
    

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

    【讨论】:

      【解决方案2】:

      检查您是否已添加此内容

       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}")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多