【问题标题】:How do I override dismiss() in Dialog ? Android如何在 Dialog 中覆盖dismiss()?安卓
【发布时间】:2017-08-01 15:03:30
【问题描述】:

我想在调用dialog.dismiss()dialog.cancel 之后进行一些数据检查。

我该怎么做呢?

是否有任何覆盖、侦听器或方法可以实现以执行某些操作然后关闭对话框?

我尝试了dialog.setOnDismissListener,但它首先关闭了对话框,然后调用了这个监听器。

【问题讨论】:

  • 无论你在 dialog.dismiss() 之后写什么代码;它会被执行,我猜你不需要任何监听器
  • 为什么不直接覆盖dismiss() 并将代码放在super.dismiss() 之前或之后?

标签: android dialog listener


【解决方案1】:

您可以使用DialogFragment 创建自己的自定义对话框,然后覆盖dismiss()

public class CustomDialog extends DialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Build the alert dialog
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setMessage(R.string.dialog_fire_missiles);
        return builder.create();
    }

    @Override
    public void dismiss() {
        // Do your stuff here
        super.dismiss();
    }

    ...
}

看这里https://developer.android.com/guide/topics/ui/dialogs.html

【讨论】:

  • 对我来说这仍然不起作用,当我到达 Dismiss 时,对话框甚至在 super.dismiss();注意:我正在使用 Xamarin
【解决方案2】:

只需按alt+insrt 选择选项覆盖方法并选择要覆盖的方法名称。

谢谢

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 2021-11-04
    • 2021-04-25
    相关资源
    最近更新 更多