10

内部クラスDialogFragmentとして宣言した場合、つまり、インスタンスが再作成されたときに、パブリックコンストラクターがない、クラスがパブリックではない、などです。実際、すべてがデフォルトのコンストラクターです。これを別のファイルに移動すると、すべてうまくいきます。私は回避策を探していません。なぜこれが起こっているのかを理解したいだけです。InstantiationExceptionorientation changepublicDialogFragment

4

1 に答える 1

9

これは、作成方法と再作成方法に基づくJavaの制限のようFragmentsです。

向きの変更など、Fragment特定の状況[1]では、すべてを再インスタンス化する必要があるようです(また、Fragment作成方法によっては、初期化時に推測します)。これは、外部クラスの外部から復元されることを意味します。ただし、非static内部クラスを外部クラスの外部からインスタンス化することはできません。[2]Fragmentクラス外からの連絡が必要な場合もあります。[3]

于 2012-07-19T18:59:46.433 に答える