当Android Dialog被解雇时,你能解雇一个事件吗?

ing*_*.am 32 static android dialog class progressdialog

假设我在Android应用中创建了一个对话框,如下所示:

private static ProgressDialog dialog;
dialog = ProgressDialog.show(MainActivity.this, "", "Downloading Files. Please wait...", true);
Run Code Online (Sandbox Code Playgroud)

现在,是否可以在调用以下内容时触发事件?

dialog.dismiss();
Run Code Online (Sandbox Code Playgroud)

我之所以这样做而不仅仅是调用我的方法dialog.dismiss();是因为在静态类中调用了Dialog dismiss,接下来要做的是加载一个新的Activity(在静态类中使用Intent无法完成) .

Ale*_*dam 57

使用OnDismissListener.

setOnDismissListener(...)课堂上有一种方法Dialog

  • 警告,此方法与API 11中的DialogFragments不兼容.请参阅[DialogFragment.onCreateDialog()](http://developer.android.com/reference/android/app/DialogFragment.html#onCreateDialog(android.os.Bundle) ) (4认同)

Bar*_*ica 5

当然可以 - 检查:

  public void onDismiss(DialogInterface dialogInterface)
  {
        //Fire event
  }
Run Code Online (Sandbox Code Playgroud)


Rah*_*him 5

每当通过单击PositiveButton,NegativeButton,NeturalButton或通过在对话框外部单击来关闭对话框时,总是会自动调用“ onDismiss”,因此onDismiss()方法中的内容也会被自动调用,例如,

@Override
public void onDismiss(DialogInterface dialogInterface) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

您甚至不需要调用dismiss()方法。


liv*_*ove 5

对对话框使用 setOnDismissListener 方法。

dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
    @Override
    public void onDismiss(DialogInterface dialog) {
        if (mIsSettingsDirty)
            refreshRecyclerView();
    }
});
Run Code Online (Sandbox Code Playgroud)