【发布时间】:2017-12-19 21:19:18
【问题描述】:
我开始使用 Kotlin 并尝试实现一个 parcelable 对象,该对象接收字符串列表作为辅助构造函数的参数。但是,我收到了错误:
在调用超类构造函数之前无法访问“
”
这是我的代码:
class StringChecker(val stringList : List<String>) : Parcelable {
var mStringList = stringList
constructor(parcel: Parcel) : this(parcel.readStringList(mStringList))
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeStringList(mStringList)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<StringChecker> {
override fun createFromParcel(parcel: Parcel): StringChecker {
return StringChecker(parcel)
}
override fun newArray(size: Int): Array<StringChecker?> {
return arrayOfNulls(size)
}
}
}
我知道在创建对象之前我不能调用成员变量 mStringList,这当然是有道理的,但是 readStringList 方法需要一个字符串列表参数。我该如何解决这个问题?这是我的设计 parcelable 与将列表作为构造函数参数的问题吗?
【问题讨论】:
标签: android list kotlin parcelable