如何将对象字符串转换为kotlin中的数据类

时间:2018-03-29 13:16:29

标签: android kotlin gson data-class

我想将.tostring转换为数据类如何转换?

InstrumentResponse(AGM=false, AllOrNone=true, Bonus=true, Dividend=true, EGM=false, AuctionDetailInfo=AuctionDetailInfo(AuctionNumber=0, AuctionStatus=0, InitiatorType=0)

我想要做的是将数据类从一个片段传递到另一个片段,但是使用bundle.putString如何将其再次转换为数据类?

有没有更好的方法来实现?或者如何将dataClass.toString转换为数据类?

2 个答案:

答案 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