web-dev-qa-db-ja.com

Androidダイアログが閉じられたときにイベントを起動できますか?

Androidアプリのようなダイアログを作成しました:

_private static ProgressDialog dialog;
dialog = ProgressDialog.show(MainActivity.this, "", "Downloading Files. Please wait...", true);
_

さて、次が呼び出されたときにイベントを発生させることは可能ですか?

_dialog.dismiss();
_

dialog.dismiss();の後にメソッドを呼び出すだけでなく、これを実行したいのは、Dialog dismissが静的クラス内で呼び出され、次に行うことは新しいアクティビティの読み込みであるためです(実行できません)静的クラス内でインテントを使用します)。

31
ingh.am

OnDismissListener を使用します。

クラスDialogには setOnDismissListener(...) メソッドがあります

54
Aleadam

確認できます-チェック:

  public void onDismiss(DialogInterface dialogInterface)
  {
        //Fire event
  }
5
barmaley

PositiveButton、NegativeButton、NeturalButtonのいずれかをクリックするか、ダイアログの外側をクリックしてダイアログを閉じると、常に "onDismiss"が自動的に呼び出されるため、onDismiss()メソッド内にあるものを実行します。

@Override
public void onDismiss(DialogInterface dialogInterface) {
    ...
}

Dismiss()メソッドを呼び出す必要さえありません。

5
Rahim

カスタムダイアログクラス内にいる場合-dismiss()をオーバーライドします。 super.dismiss()の前にロジックを挿入することをお勧めします。 Kotlinの例:

override fun dismiss() {
    Utils.hideKeyboard(mContext, window)
    super.dismiss()
}
1
silverTech

ダイアログにsetOnDismissListenerメソッドを使用します。

dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
    @Override
    public void onDismiss(DialogInterface dialog) {
        if (mIsSettingsDirty)
            refreshRecyclerView();
    }
});
0
live-love