[Android]页面间传递model列表

要实现 Parcelable 并传递 NNBBUUModel 列表,可以按照以下步骤进行:

模型类实现 Parcelable

Kotlin 复制代码
import android.os.Parcel
import android.os.Parcelable
import com.google.gson.annotations.SerializedName

open class NNBBUUModel() : Parcelable {
    @SerializedName("Tid")
    var tid: Int? = null

    @SerializedName("Name")
    var name: String? = null

    constructor(parcel: Parcel) : this() {
        tid = parcel.readValue(Int::class.java.classLoader) as? Int
        name = parcel.readString()
    }

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeValue(tid)
        parcel.writeString(name)
    }

    override fun describeContents(): Int = 0

    companion object CREATOR : Parcelable.Creator<NNBBUUModel> {
        override fun createFromParcel(parcel: Parcel): NNBBUUModel {
            return NNBBUUModel(parcel)
        }

        override fun newArray(size: Int): Array<NNBBUUModel?> {
            return arrayOfNulls(size)
        }
    }
}

传递列表

在第一个页面,使用 Intent 传递数据:

Kotlin 复制代码
val toPayList: ArrayList<NNBBUUModel> = arrayListOf(
    NNBBUUModel().apply { tid = 1; name = "Item1" },
    NNBBUUModel().apply { tid = 2; name = "Item2" }
)

val intent = Intent(this, SecondActivity::class.java)
intent.putParcelableArrayListExtra("KEY_SELECTED", toPayList)
startActivity(intent)

接收列表

在第二个页面,接收数据:

Kotlin 复制代码
val receivedList: ArrayList<NNBBUUModel>? = intent.getParcelableArrayListExtra("KEY_SELECTED")

这样就可以通过 Parcelable 传递 NNBBUUModel 列表到另一个页面。

相关推荐
4***997416 小时前
Kotlin序列处理
android·开发语言·kotlin
t***D26416 小时前
Kotlin在服务端开发中的生态建设
android·开发语言·kotlin
玲珑Felone16 小时前
flutter 状态管理--InheritedWidget、Provider原理解析
android·flutter·ios
BoomHe17 小时前
车载应用配置系统签名
android·android studio
路人甲ing..19 小时前
用 Android Studio 自带的模拟 Android Emulator 调试
android·java·ide·ubuntu·kotlin·android studio
路人甲ing..19 小时前
Android Studio 模拟器报错 The emulator process for AVD xxxxx has terminated.
android·java·ide·kotlin·android studio
弥巷19 小时前
【Android】 View事件分发机制源码分析
android·java
wanna20 小时前
安卓自学小笔记第一弹
android·笔记
Kapaseker20 小时前
五分钟实战 Compose 展开/收起动画
android·kotlin