Создайте класс данных Parcelable - PullRequest
2 голосов
/ 21 сентября 2019

Я занимаюсь разработкой Android-проекта в Котлине.Я хочу создать класс модели, который реализует интерфейс Parcelable.Вот что я попробовал:

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

Но я получаю ошибку компилятора, говорящую, что "Class School не является абстрактной и не реализует абстрактный элемент public abstract fun writeToParcel(p0: Parcel!, p1: Int):Unit, определенный в android.os.Parcelable".

Я понимаю, что говорит ошибка.Но как избавиться от этой ошибки?Моя версия Kotlin 1.3.50

Ответы [ 2 ]

2 голосов
/ 21 сентября 2019

Добавьте

androidExtensions {
    experimental = true
}

в свой блок Android в приложении build.gradle.

0 голосов
/ 21 сентября 2019

проверьте, что вы добавили

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