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

时间:2011-06-01 15:29:05

标签: android class static dialog progressdialog

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

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

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

dialog.dismiss();

我想这样做而不只是在dialog.dismiss();之后调用我的方法是因为在静态类中调用Dialog dismiss而我接下来要做的是加载一个新的Activity(不能是在静态类中使用Intents完成。

6 个答案:

答案 0 :(得分:51)

使用OnDismissListener

班级Dialog

中有setOnDismissListener(...)个方法

答案 1 :(得分:5)

当然可以 - 检查:

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

答案 2 :(得分:4)

每当通过单击PositiveButton,NegativeButton,NeturalButton或通过单击对话框外部关闭对话框时,总是会自动调用“onDismiss”,因此在onDismiss()方法中执行此操作,例如,

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

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

答案 3 :(得分:0)

对话框使用setOnDismissListener方法。

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

答案 4 :(得分:0)

如果您位于自定义对话框类中,请覆盖dismiss()。 我建议在super.dismiss()之前插入逻辑。 Kotlin示例:

Users

答案 5 :(得分:0)

如果要隐藏Dialog句柄,则可以覆盖2种方法。

    @Override
    public void cancel() {
        super.cancel();
        callback();
    }

    @Override
    public void dismiss() {
        super.dismiss();
        callback();
    }