[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 列表到另一个页面。

相关推荐
summerkissyou19879 分钟前
Android-Audio-Usage 与 StreamType的区别
android·音视频
韩立学长16 分钟前
【开题答辩实录分享】以《智慧酒店管理——手机预订和住宿管理》为例进行选题答辩实录分享
android·java·后端
QT 小鲜肉17 分钟前
【Linux命令大全】001.文件管理之chgrp命令(实操篇)
android·linux·运维·笔记
_李小白24 分钟前
【Android FrameWork】第三十一天:Surface创建流程解析
android
柯南二号24 分钟前
【大前端】【Android】 Android 手机上导出已安装 App 的 APK
android·智能手机
Just_Paranoid26 分钟前
【Android UI】Android Tint 用法指南
android·ui·tint·porterduff·colorfilter
Android系统攻城狮40 分钟前
Android16之交叉编译系统压力测试利器:stress-ng(二百六十六)
android·压力测试·android16·系统调试
杨忆41 分钟前
导航栏左右拖动切换
android
shuaijie05181 小时前
在Vue.js中实现列表的拖动功能,使用第三方库如vuedraggable(基于Sortable.js)
android·javascript·vue.js
毕设源码-郭学长1 小时前
【开题答辩全过程】以 基于Android的儿童托管系统为例,包含答辩的问题和答案
android