5

公式の例http://developer.android.com/reference/android/app/DialogFragment.html#BasicDialogでは、フラグメントは、バンドル内の引数をラップし、引数を渡して引数なしのコンストラクターを呼び出す静的ファクトリメソッドを使用して作成されています。 setArguments(bundle)を使用すると、私の質問は、これらの引数を使用してパブリックコンストラクターを作成しないのはなぜですか?getArguments / setArgumentsフラグメントのメソッドを使用する理由は何ですか?Dialogが毎回再作成されるとは限らず、再利用される可能性がありますか?もしそうなら、それが起こっているとき?前もって感謝します。

4

1 に答える 1

7

引数なしのデフォルトのコンストラクターパターンを適用すると、システムは必要に応じてフラグメントを動的に再作成できます。ドキュメントから:

Fragmentのすべてのサブクラスには、パブリックの空のコンストラクターが含まれている必要があります。フレームワークは、必要に応じて、特に状態の復元中にフラグメントクラスを再インスタンス化することが多く、インスタンス化するためにこのコンストラクターを見つけることができる必要があります。空のコンストラクターが使用できない場合、状態の復元中に実行時例外が発生する場合があります。

「頻繁に」および「場合によっては」それを曖昧にします。しかし、あなたの好奇心を満たすには至っていません...それは議論です!

于 2012-04-25T14:02:05.380 に答える