onCreate()
フラグメント内の、、onCreateView()
およびの違いは何ですか?onActivityCreated()
また、それぞれどのような目的で使用されますか?
ベストアンサー1
アップデート:
onActivityCreated()
API レベル 28 からは非推奨になりました。
onCreate():
onCreate()
のメソッドは、の後、の前に呼び出されますFragment
。このメソッドでは、変数を割り当てたり、追加情報を取得したり、View 階層に関係しないその他の操作 (つまり、非グラフィカルな初期化) を実行できます。これは、 が完了していないときにこのメソッドを呼び出すことができるため、ここで View 階層にアクセスしようとするとクラッシュする可能性があるためです。Activity
onAttachFragment()
Fragment
onCreateView()
Intent
Activity
onCreate()
onCreateView():
が呼び出された後onCreate()
( 内Fragment
)、Fragment
の がonCreateView()
呼び出されます。View
変数を割り当て、グラフィカルな初期化を行うことができます。 このメソッドから を返すことが期待されておりView
、これがメインの UI ビューですが、 がFragment
レイアウトやグラフィックスを使用していない場合は を返すことができますnull
(オーバーライドしない場合はデフォルトで発生します)。
アクティビティ作成時():
名前が示すように、これはが完了した後に呼び出されますActivity
onCreate()
。これは の後に呼び出されonCreateView()
、主に最終的な初期化(UI 要素の変更など)に使用されます。これはAPI レベル 28 から非推奨になりました。
まとめると...
... これらはすべて で呼び出されますFragment
が、呼び出されるタイミングは異なります。
はonCreate()
、非グラフィカルな初期化を行うために最初に呼び出されます。次に、View
で使用する変数を割り当てて宣言できますonCreateView()
。その後、onActivityCreated()
すべてが完了したら、 を使用して最終的な初期化を行います。
公式の Android ドキュメントをご覧になりたい場合は、こちらからご覧いただけます:
Stack Overflow には、少し異なるものの、あまり発展していない質問/回答もいくつかあります。