我想将.tostring转换为数据类如何转换?
InstrumentResponse(AGM=false, AllOrNone=true, Bonus=true, Dividend=true, EGM=false, AuctionDetailInfo=AuctionDetailInfo(AuctionNumber=0, AuctionStatus=0, InitiatorType=0)
我想要做的是将数据类从一个片段传递到另一个片段,但是使用bundle.putString
如何将其再次转换为数据类?
有没有更好的方法来实现?或者如何将dataClass.toString
转换为数据类?
答案 0 :(得分:0)
您应该使用@Parcelize
。
添加
androidExtensions {
experimental = true
}
给你build.gradle
。
然后将注释添加到您的类
@Parcelize
data class InstrumentResponse(...)
然后将值直接放入Bundle
bundle.putParcelable(key, instrumentReponse)
要检索该值,请调用
val instrumentReponse = bundle.getParcelable<InstrumentResponse>(key)
答案 1 :(得分:0)
要在活动之间传递数据类,不要使用toString 。相反,请使用putParcelable
。 parcelable是Android的自定义序列化格式。请参阅官方文档(带示例)here。
如果您不想深入了解Parcelable
实施细节,可以使用kotlin experimental features。
从Kotlin 1.1.4开始,Android Extensions插件提供
Parcelable
实现生成器作为实验性功能。
简而言之,添加
androidExtensions {
experimental = true
}
到您的build.gradle
,然后在数据类中使用@Parcelize
注释,并将其从Parcelable
继承:
import kotlinx.android.parcel.Parcelize
@Parcelize
class InstrumentResponse(...): Parcelable