将对象列表传递给片段

class CholesterolPagingFragment: Fragment() { companion object { fun newInstance(): CholesterolPagingFragment { val args = Bundle() val fragment = CholesterolPagingFragment() fragment.arguments = args return fragment } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_paging_cholesterol, container, false) return view } } 

我已经写了上面的代码在Kotlin初始化一个片段。 虽然我不能找出一种方法来传递对象列表(例如: List )到这个片段。 我已经尝试与Bundle()但找不到一个正确的方法。

您可以将List作为Parcelable ArrayList传递给Bundle ,如下所示:

  companion object { fun newInstance(myList : ArrayList): MyFragment { val args = Bundle() args.putParcelableArrayList("list",myList); val fragment = MyFragment() fragment.arguments = args return fragment } } 

要检索数据:

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val args = arguments var myList : ArrayList = args.getParcelableArrayList("list") } 

Human数据类中执行Parcelable实现:

 data class Human(val name: String, val phone: String) : Parcelable { constructor(parcel: Parcel) : this( parcel.readString(), parcel.readString()) { } override fun writeToParcel(dest: Parcel?, flags: Int) { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } override fun describeContents(): Int { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } companion object CREATOR : Parcelable.Creator { override fun createFromParcel(parcel: Parcel): Human { return Human(parcel) } override fun newArray(size: Int): Array { return arrayOfNulls(size) } } }