Kotlin 如何从getParcelableArrayListExtra获取数据<;可包裹>;在科特林
如何从kotlin中的getParcelableArrayListExtra获取数据 我有一个名为FoodParceable的可分配数据类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(),
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(列表产品)