标签: android android-dialogfragment
如果我将DialogFragment声明为内部类,我在InstantiationException上获得orientation change,即重新创建实例时,表示没有公共构造函数,类不公开等。实际上一切都是public,默认构造函数就位。如果我只是将这个DialogFragment移动到一个单独的文件 - 一切都很顺利。我不是在寻找一种解决方法,我只是想了解为什么会这样。
DialogFragment
InstantiationException
orientation change
public
答案 0 :(得分:8)
这似乎是基于如何创建和重新创建Fragments的Java的限制。
Fragments
似乎所有Fragment都必须在某些情况下重新实例化 [1] ,例如方向更改(我会在初始化时猜测,具体取决于{ {1}}已创建)。这意味着它将从外部类外部重新实例化。但是,非Fragment内部类不能从外部类外部实例化。 [2] 还有其他情况需要static与班级外的人沟通。 [3]
Fragment
static