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 }

- 定義資料類User.java:
import android.os.Parcelable import kotlinx.android.parcel.Parcelize @Parcelize class User(var age: Int,var name: String): Parcelable
如果不使用kotlin該實驗特性,則需要在資料類中增加Parcel相關程式碼
import android.os.Parcel import 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<User> { override fun createFromParcel(parcel: Parcel): User { return User(parcel) } override fun newArray(size: Int): Array<User?> { 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<User>("extraKey") infoTextView.text = user.name
安卓開發技術分享: https://www.jianshu.com/p/442339952f26
