Kotlin 如何从getParcelableArrayListExtra获取数据<;可包裹>;在科特林

Kotlin 如何从getParcelableArrayListExtra获取数据<;可包裹>;在科特林,kotlin,Kotlin,如何从kotlin中的getParcelableArrayListExtra获取数据 我有一个名为FoodParceable的可分配数据类 data class FoodParceable(val idCover: Int, val name: String, val price: Double):Parcelable { constructor(parcel: Parcel) : this( parcel.readInt(), parcel.readString(),

如何从kotlin中的getParcelableArrayListExtra获取数据

我有一个名为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)
    }
}
数据类foodparcable(val-idCover:Int,val-name:String,val
价格:双倍):可包裹{
构造函数(地块:地块):此(
parcel.readInt(),
parcel.readString(),
packet.readDouble()
)
覆盖地块(地块:地块,标志:Int){
包裹书写(idCover)
包裹。书写(名称)
包裹。可减记(价格)
}
覆盖有趣的描述内容():Int{
返回0
}
同伴对象创建者:Parcelable.CREATOR{
覆盖fun createFromParcel(地块:地块):FoodParcelable{
退货食品(包裹)
}
覆盖新数组(大小:Int):数组{
返回阵列fnulls(大小)
}
}
}

在当前活动A中,填写ArrayListParcable并将其发送到活动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)
val arrayListParceable=ArrayList()
用于(列表食品中的食品){
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(列表产品,阵列可切换)
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

                }
            }
if(resultCode==Activity.RESULT\u确定){
如果(数据!=null){
val listItems=data.getParcelableArrayListExtra(列表产品)
listItems[0]。//错误
}
}

我是科特林的新手,谢谢你的评论。关于

您必须向Kotlin提供有关对象列表类型的更多信息。试试这个:

val listItems : ArrayList<FoodParceable> = data.getParcelableArrayListExtra(LIST_PRODUCT)
val listItems:ArrayList=data.getParcelableArrayListExtra(列表产品)