[解決済み】Fragmentの関数でgetActivity()がnullを返す。
2022-04-12 23:41:45
質問
次のようなパブリックメソッドを持つフラグメント(F1)があります。
public void asd() {
if (getActivity() == null) {
Log.d("yes","it is null");
}
}
そして、(Activityから)それを呼び出すと、はい、それはnullです...。
FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction();
F1 f1 = new F1();
transaction1.replace(R.id.upperPart, f1);
transaction1.commit();
f1.asd();
何かとても間違ったことをしているに違いないが、それが何なのかわからない。
解決方法は?
commit
つまり、トランザクションはすぐに発生するのではなく、メインスレッドの準備ができたときに、メインスレッドの作業としてスケジュールされます。
を追加することをお勧めします。
onAttach(Activity activity)
メソッドを
Fragment
を呼び出し、その上にブレークポイントを置き、そのブレークポイントが
asd()
. を呼び出したメソッドの後で呼び出されていることがわかります。
asd()
が終了します。その
onAttach
の呼び出しは
Fragment
はそのアクティビティにアタッチされ、この時点から
getActivity()
は非NULLを返します(注)。
onDetach()
の呼び出し)。
関連
-
[解決済み] AndroidでBluetoothが有効かどうかのチェックに失敗する(REQUEST_ENABLE_BTを変数に解決できない)。
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] instanceofを呼び出す前にnullチェックは必要ですか?
-
[解決済み] Pythonでnullオブジェクトを参照する
-
[解決済み] カラムの変更:NULLをNOT NULLに変更する
-
[解決済み] FragmentでonActivityResultが呼び出されない
-
[解決済み] フラグメントでのコンテキストの使用
-
[解決済み] ViewPagerとフラグメント - フラグメントの状態を保存する正しい方法は何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】メソッド 'findViewById(int)' を解決できない。)
-
[解決済み】シンボル 'AppCompatActivity' を解決できない。
-
[解決済み】このアクティビティは、すでにウィンドウ装飾によって提供されるアクションバーを持っています。
-
[解決済み】フラグメントMyFragmentがアクティビティにアタッチされない。
-
[解決済み】Android Studio。Android.support.design.widget.FloatingActionButton クラスを膨らませるのにエラーが発生する。
-
[解決済み】アクティビティにない場所でのgetLayoutInflater()の呼び出し
-
[解決済み] Android Studioで「URIが登録されていません」と報告されるのはなぜですか?[クローズド]
-
[解決済み] Looper.prepare()を呼び出していないスレッドではハンドラを作成できない
-
[解決済み] BIOSのセキュリティ設定でVT-xを有効にする(お使いのコンピュータのドキュメントを参照)。
-
[解決済み] Android SDK の場所には空白を含めないでください。NDK ツールで問題が発生するためです。