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

相关推荐
alexhilton4 小时前
突破速度障碍:非阻塞启动画面如何将Android 应用启动时间缩短90%
android·kotlin·android jetpack
kobe_OKOK_5 小时前
Django `models.Field` 所有常见配置参数的完整清单与说明表
android
前行的小黑炭6 小时前
Android Compose :初步了解一下生命周期,对比原生android
android·kotlin·app
湖南人爱科技有限公司7 小时前
RaPhp和Python某音最新bd-ticket-guard-client-data加密算法解析(视频评论)
android·python·php·音视频·爬山算法·raphp
守城小轩11 小时前
Chromium 138 编译指南 - Android 篇:从Linux版切换到Android版(六)
android·chrome·指纹浏览器·浏览器开发·超级浏览器
守城小轩11 小时前
Chromium 138 编译指南 - Android 篇:环境搭建与准备(一)
android·chrome·指纹浏览器·浏览器开发
消失的旧时光-194311 小时前
Kotlin when 用法完整分享
android·开发语言·kotlin
顾林海14 小时前
Android编译插桩黑科技:ReDex带你给App"瘦个身,提个速"
android·面试·性能优化
maki07714 小时前
VR大空间资料 04 —— VRAF使用体验和源码分析
android·vr·虚幻·源码分析
消失的旧时光-194316 小时前
Kotlin 判空写法对比与最佳实践
android·java·kotlin