我遇到了一個奇怪的問題。我有一個在kotlin中實現Parcelable接口的類A.Kotlin從意圖捆綁getParcelableArray無法將其轉換爲自定義類型
我將類A的數組從一個活動傳遞給另一個沒有問題的地方。
var arrayOfA:Array<A> // just to tell the type assume the array is initialised with the value
intent.putExtra("array", arrayOfA)
不過,雖然在另一個活動接受它,我不能把它分配給數組類型的變量,它要求我把它分配給磁盤陣列當是類型parcelable爲什麼我不能給它分配變量。
in second Activity
var arrayOfA:Array<A>?=null
arrayA=intent.get("array") as Array<A> // Problem here. Class cast exception
我無法理解爲什麼。有人能幫助我嗎?我不想將變量類型更改爲Array,因爲它與許多相互依賴關係一樣(此類僅爲演示)
================= =======================
class A(val a:String?,val b:String?):Parcelable {
constructor(parcel: Parcel) : this(
parcel.readString(),
parcel.readString()) {
}
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(a)
parcel.writeString(b)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<A> {
override fun createFromParcel(parcel: Parcel): A {
return A(parcel)
}
override fun newArray(size: Int): Array<A?> {
return arrayOfNulls(size)
}
}
}
你真的需要類A添加到的問題。沒有它,它很難回答 – Zoe
請參閱編輯 –