亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Kotlin快速通過Parcelable在intent間傳遞對象

標簽:
Kotlin

内容简介

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

实现方式

  1. build.gradle添加plugin等

  • 文件头部增加如下内容:

apply plugin: 'kotlin-android'apply plugin: 'kotlin-android-extensions'
  • android节点中增加如下内容:(因为该特性当前属于实验特性)

androidExtensions {
        experimental = true
    }

https://img1.sycdn.imooc.com//5d2c18690001551007200444.jpg

  1. 定义数据类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<User> {        override fun createFromParcel(parcel: Parcel): User {            return User(parcel)
        }        override fun newArray(size: Int): Array<User?> {            return arrayOfNulls(size)
        }
    }
}
  1. 通过intent传递对象:

var intent = Intent(this@MainActivity, SecondActivity::class.java)val user = User(10, "Andy")
intent.putExtra("extraKey", user)
startActivity(intent)
  1. 通过intent接收对象:

val user = intent.getParcelableExtra<User>("extraKey")
infoTextView.text = user.name



作者:程序园中猿
链接:https://www.jianshu.com/p/a32ecbfab6b0



點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消