为什么DialogFragment不能成为内部类?

Eug*_*ene 10 android android-dialogfragment

如果我将我DialogFragment声明为内部类,我得到一个InstantiationExceptionon orientation change,即当重新创建实例时,表示没有公共构造函数,类不是公共的等等.实际上一切都是public,默认构造函数已经到位.如果我把它DialogFragment移到一个单独的文件 - 一切都很好.我不是在寻找一种解决方法,我只想了解为什么会这样.

Eri*_*ric 8

这似乎是基于如何Fragments创建和重新创建Java的限制.

似乎所有Fragments都必须在某些情况下重新实现[1],例如方向更改(我会在初始化时猜测,具体取决于Fragment创建方式).这意味着它将从外部类外部重新实例化.但是,非static内部类不能从外部类外部实例化.[2]还有一些案例Fragment需要与班级以外的人沟通.[3]