关闭对话框
当您准备好关闭对话框时,您可以通过在 Dialog 对象上调用 dismiss() 来关闭它。如有必要,您还可以从 Activity 调用dismissDialog(int),它会有效地为您调用Dialog上的dismiss()。
如果您正在使用onCreateDialog(int)
管理对话框的状态(如上一节所述),那么每次关闭对话框时,Activity 都会保留 Dialog 对象的状态。如果您决定不再需要此对象,或者清除状态很重要,那么您应该调用removeDialog(int)
. 这将删除对该对象的任何内部引用,如果对话框正在显示,它将关闭它。
使用解除监听器
如果您希望您的应用程序在对话框被关闭的那一刻执行一些过程,那么您应该将一个 on-dismiss 侦听器附加到您的对话框。
首先定义DialogInterface.OnDismissListener interface
. 这个接口只有一个方法,onDismiss(DialogInterface)
当对话框被关闭时会被调用。然后只需将您的OnDismissListener
实现传递给
setOnDismissListener().
但是,请注意,对话也可以“取消”。这是一种特殊情况,表明该对话框已被用户明确取消。如果用户按下“返回”按钮关闭对话框,或者如果对话框显式调用cancel()
(可能来自Cancel
对话框中的“”按钮),则会发生这种情况。当一个对话被取消时, OnDismissListener 仍然会被通知,但是如果你想被告知对话被显式取消(并且没有被正常关闭),那么你应该注册一个
DialogInterface.OnCancelListener with setOnCancelListener().