要实现 Parcelable 并传递 NNBBUUModel 列表,可以按照以下步骤进行:
模型类实现 Parcelable
import android.os.Parcel
import android.os.Parcelable
import com.google.gson.annotations.SerializedNameopen class NNBBUUModel() : Parcelable {@SerializedName("Tid")var tid: Int? = null@SerializedName("Name")var name: String? = nullconstructor(parcel: Parcel) : this() {tid = parcel.readValue(Int::class.java.classLoader) as? Intname = parcel.readString()}override fun writeToParcel(parcel: Parcel, flags: Int) {parcel.writeValue(tid)parcel.writeString(name)}override fun describeContents(): Int = 0companion 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 传递数据:
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)
接收列表
在第二个页面,接收数据:
val receivedList: ArrayList<NNBBUUModel>? = intent.getParcelableArrayListExtra("KEY_SELECTED")
这样就可以通过 Parcelable 传递 NNBBUUModel 列表到另一个页面。