Androidアプリのようなダイアログを作成しました:
_private static ProgressDialog dialog;
dialog = ProgressDialog.show(MainActivity.this, "", "Downloading Files. Please wait...", true);
_
さて、次が呼び出されたときにイベントを発生させることは可能ですか?
_dialog.dismiss();
_
dialog.dismiss();
の後にメソッドを呼び出すだけでなく、これを実行したいのは、Dialog dismissが静的クラス内で呼び出され、次に行うことは新しいアクティビティの読み込みであるためです(実行できません)静的クラス内でインテントを使用します)。
OnDismissListener を使用します。
クラスDialog
には setOnDismissListener(...)
メソッドがあります
確認できます-チェック:
public void onDismiss(DialogInterface dialogInterface)
{
//Fire event
}
PositiveButton、NegativeButton、NeturalButtonのいずれかをクリックするか、ダイアログの外側をクリックしてダイアログを閉じると、常に "onDismiss"が自動的に呼び出されるため、onDismiss()メソッド内にあるものを実行します。
@Override
public void onDismiss(DialogInterface dialogInterface) {
...
}
Dismiss()メソッドを呼び出す必要さえありません。
カスタムダイアログクラス内にいる場合-dismiss()をオーバーライドします。 super.dismiss()の前にロジックを挿入することをお勧めします。 Kotlinの例:
override fun dismiss() {
Utils.hideKeyboard(mContext, window)
super.dismiss()
}
ダイアログにsetOnDismissListenerメソッドを使用します。
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (mIsSettingsDirty)
refreshRecyclerView();
}
});