简体   繁体   English

如何解析列表<Int>在科特林?

[英]How can I parce a List<Int> in Kotlin?

I'm trying to parce a list of Int.我正在尝试解析一个 Int 列表。

I've tried this solution: How to parcel List<Int> with kotlin , but not worked我试过这个解决方案: 如何用 kotlin 打包 List<Int> ,但没有用

data class Pizza(
   var ingredients: ArrayList<Int>,
   val name: String,
   val imageUrl: String
) : Parcelable {
constructor(parcel: Parcel) : this(
        TODO("ingredients"),
        parcel.readString(),
        parcel.readString()) {
}

override fun writeToParcel(parcel: Parcel, flags: Int) {
    parcel.writeString(name)
    parcel.writeString(imageUrl)
}

override fun describeContents(): Int {
    return 0
}

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

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

Why don't you just try @Parcelize ! 为什么不尝试@Parcelize呢? Another cool feature of Kotlin. Kotlin的另一个很酷的功能。

Enable kotlin experimental in gradle 在Gradle中启用Kotlin实验

//Make sure you have adeed 
apply plugin: ‘kotlin-android-extensions’

androidExtensions {
    experimental = true
}

Then 然后

@Parcelize
data class Pizza(
   var ingredients: ArrayList<Int>,
   val name: String,
   val imageUrl: String
) : Parcelable

Thats it. 而已。

There are several ways to write/read a list to/from a parcel, here is a simple solution. 有多种向/从包裹中写入/读取列表的方法,这是一种简单的解决方案。

First, use writeList to write a list into a parcel 首先,使用writeList将清单写入包裹

override fun writeToParcel(parcel: Parcel, flags: Int) {
    parcel.writeList(ingredients)
    parcel.writeString(name)
    parcel.writeString(imageUrl)
}

Then, use readArrayList to read the list from the parcel. 然后,使用readArrayList从包裹中读取列表。

constructor(parcel: Parcel) : this (
    parcel.readArrayList(Int::class.java.classLoader) as ArrayList<Int>,
    parcel.readString(),
    parcel.readString()
)

Hope it helps. 希望能帮助到你。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用 Kotlin 将 ByteArray 转换为 Int? - How can I convert a ByteArray to an Int with Kotlin? 如何包裹清单<Int>与科特林 - How to parcel List<Int> with kotlin 如何保存列表<int>在一个实体中?</int> - How can I save a List<Int> in an Entity? 如何在 Kotlin 的一个对象中加入三个列表 - How can I join three list in one object in Kotlin 如何通过 Kotlin 将拖动视图的 ID 传递到 setImageResource(resID:Int) 中? - How can I pass the ID of dragged view into setImageResource(resID:Int) via Kotlin? 在Kotlin ArrayAdapter中需要(上下文上下文,int资源)作为参数,但是我想要作为ArrayList中的字符串,h怎么做? - in Kotlin ArrayAdapter need (Context context,int resource) as parameter but i want as a string in the ArrayList how h can do that? 如何在 android Kotlin 中的日期选择器上将月份 Int 添加到选定的日期? - How can I add months Int to a choosen date on date picker in android Kotlin? 我怎样才能在 Kotlin 中做到这一点? - How can I do this in Kotlin? 如何通过jsoup对div中的特定元素进行解析? - How to parce by jsoup for specific element from div? 如何从Kotlin中的对象列表属性填充CharSequence数组? - How can I fill in a CharSequence array from the property of a object List in Kotlin?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM