Чтобы использовать Parcelable, я следил за этим выпуском Kotlin 1.1.4: https://blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out/
Добавьте эту строку в проект
androidExtensions { experimental = true }
Затем определите класс:
@Parcelize class User(val firstName: String, val lastName: String) : Parcelable
Способы writeToParcel () и createFromParcel () создаются автоматически
override fun writeToParcel(parcel: Parcel, flags: Int) { ... }
но все еще есть ошибка в ключе «override» с сообщением
OVERRIDING_WRITE_TO_PARCEL_IS_NOT_ALLOWED: переопределение «writeToParcel» не допускается. Вместо этого используйте компаньон «Parceler»
Можете ли вы показать мне правильный путь?
Изменить: только свойства, определенные в конструкторе по умолчанию, будут добавляться в парцеллу, а другие нет? Я вижу это предупреждение в этом классе.
PROPERTY_WONT_BE_SERIALIZED: свойство не будет сериализовано в «Посылку». Добавьте аннотацию @Transient для удаления предупреждения
Убедитесь, что вы используете версию kotlin 1.1.4
Не нужно переопределять методы writeToParcel / createFromParcel. Если вы ничего не делаете. Студия дает вам ошибку, но вы можете игнорировать эту ошибку; чеки lint еще не обновлены, чтобы понять @Parcelize. Соответствующая проблема YouTrack находится здесь:
https://youtrack.jetbrains.com/issue/KT-19300
Использовать класс create
Затем передать его, как
Чтобы вернуть его
Вы можете просто игнорировать предупреждение, поскольку это всего лишь проверка ворса.
теперь, чтобы избавиться от него, просто используйте @SuppressLint("ParcelCreator")
например:
@SuppressLint("ParcelCreator") @Parcelize class User(val firstName: String, val lastName: String) : Parcelable