Parcel zu verwenden, hatte ich diese Version von Kotlin 1.1.4 folgt: https://blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out/Android Kotlin erstellen Klasse implementieren Parcel einen Fehler geben in ‚Override‘ von writeToParcel Methode
diese Zeile hinzufügen in Projekt
androidExtensions {
experimental = true
}
definieren dann eine Klasse:
@Parcelize
class User(val firstName: String, val lastName: String) : Parcelable
Die writeToParcel() und createFromParcel() Methoden automatisch
geschaffenoverride fun writeToParcel(parcel: Parcel, flags: Int) {
...
}
aber noch haben einen Fehler in 'Überschreibung' Keyword mit Meldung
OVERRIDING_WRITE_TO_PARCEL_IS_NOT_ALLOWED: Übergeordnete 'writeToParcel' ist nicht erlaubt. Verwenden Sie stattdessen 'Parceler'-Begleitobjekt
Können Sie mir den richtigen Weg zeigen?
Bearbeiten: Werden nur im Standardkonstruktor definierte Eigenschaften zu Parcel hinzugefügt, und andere nicht? Ich sehe diese Warnung in dieser Klasse.
PROPERTY_WONT_BE_SERIALIZED: Eigenschaft würde nicht in eine 'Parcel' serialisiert werden. Add '@Transient' Annotation die Warnung
Wenn ich ein Kind Klasse definieren, die Parcel Klasse erben. Muss ich die Annotation von Parcelize hinzufügen? – quangkid
Ich habe das nie versucht, aber wenn Sie die Kindklasse serialisieren möchten, verwenden Sie Parcelize in der Kindklasse anstelle der Basisklasse.und wenn Sie die Kindklasse nicht serialisieren, brauchen Sie Parcelize nicht. Was möchten Sie erreichen? –