如何在 kotlin 中将对象字符串转换为数据 Class
How convert Object String to Data Class in kotlin
我想将下面的.tostring转换成数据class如何转换?
InstrumentResponse(AGM=false, AllOrNone=true, Bonus=true, Dividend=true, EGM=false, AuctionDetailInfo=AuctionDetailInfo(AuctionNumber=0, AuctionStatus=0, InitiatorType=0)
我试图通过捆绑将数据 class 从一个片段传递到另一个片段,但是使用 bundle.putString
如何将其再次转换为数据 class?
有没有更好的实现方式?或者如何将 dataClass.toString
转换为数据 class ?
你应该只使用 @Parcelize
.
添加
androidExtensions {
experimental = true
}
给你build.gradle
.
然后给你加注解class
@Parcelize
data class InstrumentResponse(...)
然后直接把值放到Bundle
bundle.putParcelable(key, instrumentReponse)
要检索值,请调用
val instrumentReponse = bundle.getParcelable<InstrumentResponse>(key)
要在活动之间传递数据 class,不要使用 toString。相反,使用 putParcelable
。 Parcelable 是 Android 的自定义序列化格式。请参阅官方文档(带示例)here。
如果您不想深入研究 Parcelable
实现细节,您可以使用 kotlin experimental features。
Starting from Kotlin 1.1.4, Android Extensions plugin provides Parcelable
implementation generator as an experimental feature.
简而言之,添加
androidExtensions {
experimental = true
}
到您的 build.gradle
,然后在您的数据 class 中使用 @Parcelize
注释并使其继承自 Parcelable
:
import kotlinx.android.parcel.Parcelize
@Parcelize
class InstrumentResponse(...): Parcelable
我想将下面的.tostring转换成数据class如何转换?
InstrumentResponse(AGM=false, AllOrNone=true, Bonus=true, Dividend=true, EGM=false, AuctionDetailInfo=AuctionDetailInfo(AuctionNumber=0, AuctionStatus=0, InitiatorType=0)
我试图通过捆绑将数据 class 从一个片段传递到另一个片段,但是使用 bundle.putString
如何将其再次转换为数据 class?
有没有更好的实现方式?或者如何将 dataClass.toString
转换为数据 class ?
你应该只使用 @Parcelize
.
添加
androidExtensions {
experimental = true
}
给你build.gradle
.
然后给你加注解class
@Parcelize
data class InstrumentResponse(...)
然后直接把值放到Bundle
bundle.putParcelable(key, instrumentReponse)
要检索值,请调用
val instrumentReponse = bundle.getParcelable<InstrumentResponse>(key)
要在活动之间传递数据 class,不要使用 toString。相反,使用 putParcelable
。 Parcelable 是 Android 的自定义序列化格式。请参阅官方文档(带示例)here。
如果您不想深入研究 Parcelable
实现细节,您可以使用 kotlin experimental features。
Starting from Kotlin 1.1.4, Android Extensions plugin provides
Parcelable
implementation generator as an experimental feature.
简而言之,添加
androidExtensions {
experimental = true
}
到您的 build.gradle
,然后在您的数据 class 中使用 @Parcelize
注释并使其继承自 Parcelable
:
import kotlinx.android.parcel.Parcelize
@Parcelize
class InstrumentResponse(...): Parcelable