Junior — Middle
Kā tiek veikta objektu serializācija un deserializācija, izmantojot Parcelable Android?
sobes.tech AI
Atbilde no AI
Android platformā, Parcelable saskarne tiek izmantota efektīvai objektu serializācijai, ļaujot tos pārsūtīt starp komponentiem (piemēram, starp Activity, izmantojot Intent).
Serializācija (objekta rakstīšana):
- Klasei jāīsteno
Parcelablesaskarne. - Pārdefinējiet metodi
writeToParcel(Parcel dest, int flags), kurā visi objekta lauki tiek rakstītiParcelar metodēm kāwriteInt(),writeString()u.c.
Deserializācija (objekta lasīšana):
- Izveidojiet statisku lauku
CREATORtipāParcelable.Creator<T>, kas īsteno šīs metodes:createFromParcel(Parcel in)— lasa datus noParcelun izveido objektu.newArray(int size)— izveido objektu masīvu.
- Konstruktorā, kas pieņem
Parcel, lasiet laukus tajā pašā secībā, kā tie tika rakstīti.
Piemērs:
class User(val name: String, val age: Int) : Parcelable {
constructor(parcel: Parcel) : this(
parcel.readString() ?: "",
parcel.readInt()
)
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(name)
parcel.writeInt(age)
}
override fun describeContents() = 0
companion object CREATOR : Parcelable.Creator<User> {
override fun createFromParcel(parcel: Parcel) = User(parcel)
override fun newArray(size: Int) = arrayOfNulls<User?>(size)
}
}
Tādējādi, objekts var tikt pārsūtīts ar Intent:
intent.putExtra("user", user)
un saņemts:
val user = intent.getParcelableExtra<User>("user")