Pass list of objects from one activity to other activity in android

后端 未结 7 1759
轻奢々
轻奢々 2020-12-01 01:35

I want to pass a list of objects from one activity from another activity. I have one class SharedBooking Below:

public class SharedBooking {         


        
7条回答
  •  悲哀的现实
    2020-12-01 02:15

    If there is someone who is looking for answer this is how i implemented it using Kotlin.

    Parcelable object class

    data class CollectedMilk(
        @SerializedName("id")
        var id: Int,
        @SerializedName("igicuba")
        var igicuba: Int,
        @SerializedName("collector")
        var collector: String?,
        @SerializedName("collected")
        var collected: Int,
        @SerializedName("accepted")
        var accepted: Int,
        @SerializedName("standard")
        var standard: String?,
        @SerializedName("created_at")
        var created_at: String?,
        @SerializedName("updated_at")
        var updated_at: String?,
    ): Parcelable {
    
        constructor(parcel: Parcel) : this(
            parcel.readInt(),
            parcel.readInt(),
            parcel.readString(),
            parcel.readInt(),
            parcel.readInt(),
            parcel.readString(),
            parcel.readString(),
            parcel.readString()
        )
    
        override fun describeContents(): Int {
            return 0
        }
    
        override fun writeToParcel(parcel: Parcel?, int: Int) {
            parcel?.writeInt(id)
            parcel?.writeInt(igicuba)
            parcel?.writeString(collector)
            parcel?.writeInt(collected)
            parcel?.writeInt(accepted)
            parcel?.writeString(standard)
            parcel?.writeString(created_at)
            parcel?.writeString(updated_at)
        }
    
        companion object CREATOR : Parcelable.Creator {
            override fun createFromParcel(parcel: Parcel): CollectedMilk {
                return CollectedMilk(parcel)
            }
    
            override fun newArray(size: Int): Array {
                return arrayOfNulls(size)
            }
        }
    }
    

    Then in Fragment

    collectedMilkAdapter.onItemClick = { collectedMilk ->
                Toast.makeText(
                    MccApp.applicationContext(),
                    "Collector: " + collectedMilk.collector,
                    Toast.LENGTH_LONG
                ).show()
    
                val intent = Intent(MccApp.applicationContext(), CollectedMilkActivity::class.java)
                val bundle: Bundle = Bundle()
    
                bundle.putParcelableArrayList("collectedMilk", collectedMilkArrayList)
                intent.putExtras(bundle)
    
                activity?.startActivity(intent)
            }
    

    Then on another Activity my Detail Activity

    Global Variable

    private lateinit var collectedMilk: ArrayList
    

    In Function or OnCreate Activity

    val bundle = intent.extras
            collectedMilk = (bundle?.getParcelableArrayList("collectedMilk") as ArrayList)
    
            Toast(this).showCustomToast(
                this,
                ""+collectedMilk,
                dark
            ) 
    

提交回复
热议问题