363

onCreate()onCreateView()、およびonActivityCreated()フラグメントの違いは何ですか? また、それぞれは何に使用されますか?

4

3 に答える 3

438

アップデート:

onActivityCreated()API レベル 28 から廃止されました。


onCreate():

aのonCreate()メソッドは のFragmentそのActivityonAttachFragment()前に呼び出されFragmentますonCreateView()
このメソッドでは、変数を割り当てたり、Intentエクストラを取得したり、View 階層に関係のないこと(つまり、非グラフィカルな初期化) を行うことができます。これは、 が終了していないときにこのメソッドを呼び出すことができるためActivityonCreate()ここでビュー階層にアクセスしようとするとクラッシュする可能性があるためです。

onCreateView():

onCreate()が ( でFragment)呼び出された後、Fragmentが呼び出さonCreateView()れます。View変数を割り当てて、グラフィカルな初期化を行うことができます。このメソッドからを返すことが期待されてViewおり、これがメインの UI ビューですが、Fragmentレイアウトやグラフィックを使用しない場合は、返すことができますnull(オーバーライドしない場合、デフォルトで発生します)。

onActivityCreated():

名前が示すように、これは完了した後に呼び出されActivityonCreate()ます。これは の後onCreateView()に呼び出され、主に最終的な初期化 (UI 要素の変更など) に使用されます。これは、API レベル 28 から廃止されました。


要約すると...
...それらはすべて呼び出されますFragmentが、異なるタイミングで呼び出されます。非グラフィカルな初期化を行うために、 が最初に呼び出されます
onCreate()次に、 で使用する任意のView変数を割り当てて宣言できますonCreateView()。その後、onActivityCreated()すべてが完了したら、必要な最終的な初期化を行うために使用します。


公式の Android ドキュメントを表示する場合は、次の場所にあります。

Stack Overflow には、わずかに異なるがあまり開発されていない質問/回答もあります。

于 2015-09-18T16:25:55.103 に答える
169

簡潔で絵のような答えを探している人のために:

ここに画像の説明を入力 https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/


と、

ここに画像の説明を入力

于 2017-06-16T06:39:07.720 に答える