gpt4 book ai didi

android - 将对象列表传递给 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:44:33 26 4
gpt4 key购买 nike

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 中编写了上述代码来初始化 fragment 。尽管我想不出将对象列表(例如:List<Human>)传递给该 fragment 的方法。我试过 Bundle()但找不到合适的方法。

最佳答案

你可以通过List<Human>作为Parcelable ArrayListBundle 如下:

 companion object {
fun newInstance(myList : ArrayList<Human>): 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<Human> = args.getParcelableArrayList<Human>("list")
}

ParcelableHuman 中实现数据类:

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<Human> {
override fun createFromParcel(parcel: Parcel): Human {
return Human(parcel)
}

override fun newArray(size: Int): Array<Human?> {
return arrayOfNulls(size)
}
}
}

关于android - 将对象列表传递给 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47976349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com