Kotlin語法不熟悉可以參考
程式語言 -> Kotlin
Intent基本切換,不代資料
val intent = Intent(this, SecondActivity::class.java) startActivity(intent) finish()//關掉當前頁面
傳遞ArrayList前的準備
需要使用Parcelize,ext.kotlin_version = “1.1.4″以上皆已支援
建議還是使用新的版本,畢竟Kotlin現在都已經到1.5.21版本了
如果還是喜歡懷舊,"1.1.4″以前的版本,參考下方
class User(var name: String?, var info: String?): Parcelable { constructor(parcel: Parcel): this( parcel.readString() ,parcel.readString()) override fun describeContents(): Int { return 0 } override fun writeToParcel(dest: Parcel?, flags: Int) { dest?.writeString(name) dest?.writeString(info) } companion object CREATOR: Parcelable.Creator { override fun createFromParcel(source: Parcel): User { return User(source) } override fun newArray(size: Int): Array { return arrayOfNulls(size) } } }
“1.1.4″以後的版本,參考下方
@Parcelize class User(var name: String?, var info: String?): Parcelable { }
Intent切換,並傳遞ArrayList
//MainActivity //按下Button切換至SecondActivity //並傳遞ArrayList button.setOnClickListener { val appleUser = User("Apple", "A1") val javaUser = User("Java", "B1") val kotlinUser = User("Kotlin", "C1") val intent = Intent( this, SecondActivity::class.java ) intent.putExtra( "user", arrayListOf( appleUser, javaUser, kotlinUser ) ) startActivity(intent) finish() } //SecondActivity的onCreate的地方 //將ParcelableArrayList的資料讀出來 val user = intent .getParcelableArrayListExtra("user") user?.run { indices.forEach { println("name ${user[it].name} " + "info ${user[it].info}" ) } }
訂閱Codeilin的旅程,若有最新消息會通知。
廣告
發表迴響