使用 Class 对象创建片段

Create Fragment with Class Object

我们可以做到:

val fragment = SomeFragment()
val args = Bundle()
args.putString("Key_Value", "String_Value")
fragment.arguments = args

我们可以像这样从 Fragment 中获取它:

arguments.getString("String_key","Default Value")

我的问题是我们可以传递一个 class 对象作为参数吗?

val some_object = SomeClass()
args.put("Key_Value", some_object )

您可以传递可打包的东西(不要对活动、片段等 classes 执行此操作) 看到这个答案:

或者传递一些标识 class 的东西,例如,可以将类名作为字符串传递,然后在片段内部调用类似 startActivity 的东西,如果它是 Activity / Android 相关的 class 你不应该通过(或 parcelize)

看到这个答案:

一般情况下class如果是parcelized的话是不允许太大的,所以在某些情况下你需要其他的解决方案