Android で、ダイアログを画面に追加して別のアクティビティが開いた場合、そのアクティビティから開いているすべてのダイアログを取得するにはどうすればよいですか?
そのうちの 1 つを閉じる必要があります。
Android で、ダイアログを画面に追加して別のアクティビティが開いた場合、そのアクティビティから開いているすべてのダイアログを取得するにはどうすればよいですか?
そのうちの 1 つを閉じる必要があります。
クラスを作成し、ダイアログを拡張DialogFragment
して、onCreateDialog
このダイアログ フラグメントを特定のタグで表示する必要があります。その後、 を使用してこのダイアログを見つけることができますactivity.getFragmentManager().findFragmentByTag("the tag")
。
ダイアログ (ローカルまたはグローバル) への参照を保持しないでください。これは、アクティビティが再作成される可能性があり、参照がメモリ内でリークする可能性があるためです。findFragment メソッドを使用して参照を取得するだけです。
フラグメントにいる場合fragment.getChildFragmentManager(...)
は、同じことを使用して行うことができます。幸運を!
別のアクティビティが開くと、現在のアクティビティは onPause() 状態になります。詳細については、こちらを参照してください。
onPause() で dialog.dismiss() を呼び出すと、設定する必要があります。