【发布时间】:2018-08-12 04:28:37
【问题描述】:
在我的片段上,我想获得ArrayList<Animal>。我创建了一个 newInstance 函数。
companion object {
private val ARG_TITLE = "ARG_TITLE"
private val ARG_ANIMALS = "ARG_ANIMALS"
fun newInstance(title: String,animals: ArrayList<Animal>): ExampleFragment{
val fragment = ExampleFragment()
val args = Bundle()
args.putString(ARG_TITLE, title)
args.putSerializable(ARG_ANIMALS, animals)
fragment.arguments = args
return fragment
}
}
在我的onCreate() 我有这个。
private var title: String = ""
lateinit private var animals:ArrayList<Animal>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (arguments != null) {
title = arguments.getString(ARG_TITLE)
animals = arguments.getSerializable(ARG_ANIMALS)
}
}
但是
必需:ArrayList 找到序列化!
也不能转换为 ArrayList。
【问题讨论】:
-
您是否尝试将其投射到
(ArrayList<Animal>)? -
是的,animals = arguments.getSerializable(ARG_ANIMALS) as ArrayList
-
确保动物类已经实现了可序列化
-
错误出现在哪一行?
-
我认为 args.putSerializable(ARG_ANIMALS, animals as Serializable) 应该可以工作!
标签: android android-intent kotlin fragment