Как разделить класс Google Place? - PullRequest
0 голосов
/ 07 марта 2019

в моем пользовательском объекте у меня есть 7 атрибутов, 5 из них являются строками и были автоматически сгенерированы в контуре штрафа, но два других не генерируются автоматически.последние два класса Place и ArrayList<int>:

class Spot() : Parcelable{
    private var uid: String? = null
    private var timeFrom: String? = null
    private var timeTo: String? = null
    private var rate: String? = null
    private var description: String? = null
    private var place: Place? = null
    private var days : ArrayList<Int>? = null

    constructor(parcel: Parcel) : this() {
        uid = parcel.readString()
        timeFrom = parcel.readString()
        timeTo = parcel.readString()
        rate = parcel.readString()
        description = parcel.readString()
    }
...

Как мне их разделить?

1 Ответ

0 голосов
/ 08 марта 2019

Есть несколько способов сделать это. Вам необходимо самостоятельно добавить код для ArrayList и Place Object в методах constructor и writeToParcel .

Конструктор

constructor(parcel: Parcel) : this() {
        uid = parcel.readString()
        timeFrom = parcel.readString()
        timeTo = parcel.readString()
        rate = parcel.readString()
        description = parcel.readString()

        // Add the below to line of code
        days = parcel.readArrayList(Int::class.java.classLoader) as ArrayList<Int>?
        place = parcel.readParcelable<Place>(Place::class.java.classLoader)
    }

writeToParcel

override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeString(uid)
        parcel.writeString(timeFrom)
        parcel.writeString(timeTo)
        parcel.writeString(rate)
        parcel.writeString(description)

        // Add the below to line of code
        parcel.writeList(days)
        parcel.writeParcelable(place, flags)

    }

И если я не ошибаюсь, класс Googles Place уже Parcelable, поэтому этот код должен работать.

Надеюсь, это поможет!

...