[解決済み] フラグメントにおけるonCreate()、onCreateView()、onActivityCreated()の違いと使い分けについて
質問
とはどのような違いがあるのでしょうか?
onCreate()
,
onCreateView()
および
onActivityCreated()
を断片化し、それぞれ何に使うのか?
どのように解決するのですか?
UPDATEしてください。
onActivityCreated()
は、API Level 28 から非推奨とする。
onCreate()を使用します。
は
onCreate()
メソッドの中で
Fragment
は
の後に呼び出されます。
Activity
's
onAttachFragment()
が、その前に
Fragment
's
onCreateView()
.
このメソッドでは、変数を代入して
Intent
を追加し、さらに
View の階層に関係しないものであれば、何でも構いません。
(すなわち、非グラフィカルな初期化)。これは、このメソッドが
Activity
's
onCreate()
が終了していないため、ここでView階層にアクセスしようとすると、クラッシュする可能性があります。
onCreateView() を使用します。
の後に
onCreate()
が呼び出されます(
Fragment
) を使用すると
Fragment
's
onCreateView()
が呼び出されます。を割り当てることができます。
View
変数と
グラフィカルな初期化を行う
. を返すことが期待されています。
View
このメソッドから、これがメインのUIビューになるのですが、もしあなたの
Fragment
はレイアウトやグラフィックを一切使用しないので、その場合は
null
(オーバーライドしない場合、デフォルトで発生します)。
onActivityCreated() を使用します。
名前の通り、これは
の後に呼び出されます。
Activity
's
onCreate()
が完成しました。
. の後に呼び出されます。
onCreateView()
主に最終的な初期化(例えば、UI要素の変更)に使用されます。これは
非推奨
をAPIレベル28から導入しました。
要約すると...
... それらはすべて
Fragment
が、異なるタイミングで呼び出されます。
は
onCreate()
が最初に呼び出され、グラフィカルでない初期化が行われます。次に
View
で使用したい変数を
onCreateView()
. その後
onActivityCreated()
を使って、すべてが完了した後に行いたい最終的な初期化を行ってください。
Androidの公式ドキュメントをご覧になりたい方は、こちらをご覧ください。
また、少し違いますが、あまり発展していない質問/回答がStack Overflowのここにあります。
関連
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
超シンプルなアンドロイドのタイムディレイ機能
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] match_parentとfill_parentの違いは何ですか?
-
[解決済み] なぜフラグメントなのか、そしてアクティビティの代わりにフラグメントを使用するのはどんなときか?
-
[解決済み] ViewPagerとフラグメント - フラグメントの状態を保存する正しい方法は何ですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Android.mk:7: *** セパレータがありません。
-
cygwinのダウンロード、インストールチュートリアル、およびCDTの「makeプログラムがパスに見つからない」バグの解消
-
Android: インポートモジュールエラー Android リソースのリンクに失敗しました
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
Androidのカラーグラデーション実装のまとめ
-
Android Studioのgitの使用とgitの設定パス
-
Android TextViewは、テキスト内容が表示省略記号を超えているかどうかを判断する
-
android.content.ActivityNotFoundException を解決します。Intent問題を処理するActivityが見つからない