как получить данные из getParcelableArrayListExtra <Parcelable>в kotlin - PullRequest
0 голосов
/ 11 мая 2019

Как получить данные из getParcelableArrayListExtra в kotlin?.

У меня есть класс данных Parceable, который называется FoodParceable

data class FoodParceable(val idCover: Int, val name: String, val 
price: Double):Parcelable {
constructor(parcel: Parcel) : this(
    parcel.readInt(),
    parcel.readString(),
    parcel.readDouble()
)

override fun writeToParcel(parcel: Parcel, flags: Int) {
    parcel.writeInt(idCover)
    parcel.writeString(name)
    parcel.writeDouble(price)
}

override fun describeContents(): Int {
    return 0
}

companion object CREATOR : Parcelable.Creator<FoodParceable> {
    override fun createFromParcel(parcel: Parcel): FoodParceable {
        return FoodParceable(parcel)
    }

    override fun newArray(size: Int): Array<FoodParceable?> {
        return arrayOfNulls(size)
    }
}

}

В текущем файле Acitvity A заполните arrayListParceable и отправьте его в действие B.

    val arrayListParceable = ArrayList<FoodParceable>()
    for (Food in listFood) {

        arrayListParceable.add(FoodParceable(R.mipmap.ic_food_meat, "Carne", 9.99))
        arrayListParceable.add(FoodParceable(R.mipmap.ic_food_meat, "Vegetales", 29.99))
        arrayListParceable.add(FoodParceable(R.mipmap.ic_food_meat, "Frutas", 39.99))
    }
    val intent = Intent()
    intent.putParcelableArrayListExtra(LIST_PRODUCT,arrayListParceable)
    activity?.setResult(Activity.RESULT_OK, intent)

Когда я получаю значение в действии B, в элементе списка я не могу ввести его содержимое.

if(resultCode == Activity.RESULT_OK){
                if(data != null){
                    val listItems = data.getParcelableArrayListExtra<Parcelable>(LIST_PRODUCT)
                    listItems[0]. //ERROR

                }
            }

Я новичок в kotlin, спасибо за ваши комментарии. Привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...