我正在努力理解一个问题,但是我没有找到特定的解决方案。
基类
open class FeedBase() : Parcelable{
var type : String =""
constructor(parcel: Parcel) : this() {
type=parcel.readString()
}
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(type)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR: Parcelable.Creator<FeedBase> {
override fun createFromParcel(parcel: Parcel): FeedBase {
return FeedBase(parcel)
}
override fun newArray(size: Int): Array<FeedBase?> {
return arrayOfNulls(size)
}
}}
数据类的项目类,继承基类
@Parcelize
data class FeedItem(var feed:Feed) : FeedBase()
& Data类
@Parcelize
data class Feed(var test:String,var score:Int) : Parcelable
现在我正在尝试跨活动发送我的数据,我正在创建以下对象:
val feedItem = FeedItem(Feed("yolo", 1000))
feedItem.type="test"
但是我无法获得正确的 类型(基类中的变量)。当我从另一个活动中的可包含意图接收对象时,它会变为空白,但项目数据会被保留。我该如何解决这个问题?
type
参数。 - Alexey Romanov@Parcelize
没有使用FeedBase
实现,希望这能有所帮助。 - Alexey Romanov