java intent 传递集合对象_Kotlin快速通过Parcelable在intent间传递对象

内容简介

Java代码里要通过Parcelable在intent间传递对象时,Java对象要实现Parcelable,操作起来很麻烦。不过Kotlin里已经有了更好用的方式了。

实现方式build.gradle添加plugin等文件头部增加如下内容:apply plugin: 'kotlin-android'apply plugin: 'kotlin-android-extensions'android节点中增加如下内容:(因为该特性当前属于实验特性)androidExtensions {

experimental = true

}

AAffA0nNPuCLAAAAAElFTkSuQmCC定义数据类User.java:import android.os.Parcelableimport kotlinx.android.parcel.Parcelize@Parcelizeclass User(var age: Int,var name: String): Parcelable

如果不使用kotlin该实验特性,则需要在数据类中增加Parcel相关代码import android.os.Parcelimport android.os.Parcelable

class User(var age: Int,var name: String): Parcelable {

constructor(parcel: Parcel) : this(

parcel.readInt(),

parcel.readString()) {

}    override fun writeToParcel(parcel: Parcel, flags: Int) {

parcel.writeInt(age)

parcel.writeString(name)

}    override fun describeContents(): Int {        return 0

}

companion object CREATOR : Parcelable.Creator {        override fun createFromParcel(parcel: Parcel): User {            return User(parcel)

}        override fun newArray(size: Int): Array {            return arrayOfNulls(size)

}

}

}通过intent传递对象:var intent = Intent(this@MainActivity, SecondActivity::class.java)val user = User(10, "Andy")

intent.putExtra("extraKey", user)

startActivity(intent)通过intent接收对象:val user = intent.getParcelableExtra("extraKey")

infoTextView.text = user.name

作者:程序园中猿

链接:https://www.jianshu.com/p/a32ecbfab6b0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值