首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlinx Parcelize类扩展

Kotlinx Parcelize类扩展
EN

Stack Overflow用户
提问于 2018-08-17 07:45:37
回答 1查看 897关注 0票数 0

我有两个开放类BaseNfcCardSomeObjectNfcCard。这里,SomeObjectNfcCard扩展了BaseNfcCardParcelableBaseNfcCard也扩展了Parcelable

当我将SomeObjectNfcCard传递到另一个活动时,我只有来自它的数据,而没有来自BaseNfcCard的数据。这是我的代码问题还是库?

代码语言:javascript
复制
@Parcelize
open class BaseCard(
        var cardId: String = "",
        var id: String = "",
        var type: Int = NfcFieldsHelper.UNDEFINED
) : Parcelable

@Parcelize
open class ObjectCard(
        var date: String = "",
        var objectState: Int = STATE_UNDEFINED,
        var managerId: String = "",
        var lastUpdate: String = "",

        var plombs: ArrayList<String> = ArrayList()
) : BaseCard(), Parcelable

将数据传递给意图

代码语言:javascript
复制
private fun onCardParsed(result: ObjectCard) = startActivity(Intent(this,
        CardReadyActivity::class.java)
        .putExtra(CardReadyActivity.CARD_DATA, result))

从意图中获取数据

代码语言:javascript
复制
private lateinit var card: ObjectCard
card = intent?.extras?.getParcelable(CardReadyActivity.CARD_DATA)!!
EN

回答 1

Stack Overflow用户

发布于 2018-08-17 08:22:30

这实际上是在Parcelize中记录的:

注意,只有主构造函数属性才会被序列化。

https://github.com/JetBrains/kotlin/blob/master/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/parcel/Parcelize.kt#L24

但从他们的测试用例来看,作文应该是可行的:

代码语言:javascript
复制
@Parcelize
class ObjectCard(
        var baseCard: BaseCard,
        var date: String = "",
        var objectState: Int = 2,
        var managerId: String = "",
        var lastUpdate: String = "",
        var plombs: ArrayList<String> = ArrayList()
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51890607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档