У меня есть класс User
, который реализует интерфейс Parcelable
.User
также имеет свойство типа MutableList<String>
.Я хотел бы знать, как читать / писать этот тип для Parcelable
.
Вот мой код на данный момент
data class User(
val contactNumber: String,
val email: String,
val fullName: String,
var instanceToken: String,
val isAdmin: Boolean,
val isValid: Boolean,
val organization: String,
val registrationTokens: MutableList<String>,
val uid: String,
val unitNumber: String
) : Parcelable {
constructor(source: Parcel) : this(
source.readString() ?: "",
source.readString() ?: "",
source.readString() ?: "",
source.readString() ?: "",
source.readBoolean(),
source.readBoolean(),
source.readString() ?: "",
source.readStringList(),
source.readString() ?: "",
source.readString() ?: ""
)
override fun writeToParcel(dest: Parcel?, flags: Int) {
dest?.let {
it.writeString(contactNumber)
it.writeString(email)
it.writeString(fullName)
it.writeString(instanceToken)
it.writeBoolean(isAdmin)
it.writeBoolean(isValid)
it.writeString(organization)
it.writeStringList(registrationTokens)
it.writeString(uid)
it.writeString(unitNumber)
}
}
Для части записи есть метод writeStringList()
, который удобен.Но для прочитанной части, предоставленный readStringList()
фактически не возвращает MutableList<String>
.Возвращает только Unit
/ void
.Следовательно, он выдает ошибку компиляции.
Как правильно это сделать?