我已经阅读了一些有关 Android 中对话框的资料,但我有一个悬而未决的问题:
当我使用 Activity 的处理对话框的方法时(例如:onCreateDialog(...)
),我应该还是不应该关闭 onPause 中的对话框()
?
或者也许只有在我保留它的情况下我才应该忽略它 - 创建一个引用此对话框的 Activity 成员变量?
我找到了这个答案:https://stackoverflow.com/a/2851833/501560说我需要显式调用 dismiss()
方法,但我读过一些其他资源说 Activity 应该自己处理它...
谢谢。
最佳答案
关闭对话框
当您准备好关闭对话框时,您可以通过调用 Dialog 对象的 dismiss() 来关闭它。如有必要,您还可以从 Activity 中调用 dismissDialog(int),这会有效地为您调用 Dialog 上的 dismiss()。
如果您使用 onCreateDialog(int)
来管理对话框的状态(如前一节所述),那么每次您的对话框关闭时,Dialog 对象的状态都会保留通过 Activity 。如果您决定不再需要此对象或清除状态很重要,那么您应该调用 removeDialog(int)
。这将删除对该对象的任何内部引用,如果对话框正在显示,它将关闭它。
使用关闭听众
如果您希望您的应用程序在对话框被关闭时执行某些过程,那么您应该将关闭时的监听器附加到您的对话框。
首先定义DialogInterface.OnDismissListener 接口(interface)
。这个接口(interface)只有一个方法,onDismiss(DialogInterface)
,当对话框被关闭时会被调用。然后只需将您的 OnDismissListener
实现传递给
setOnDismissListener().
但是请注意,对话框也可以“取消”。这是一种特殊情况,表示对话框已被用户明确取消。如果用户按下“后退”按钮关闭对话框,或者如果对话框显式调用 cancel()
(可能来自对话)。当对话框被取消时,OnDismissListener 仍然会收到通知,但是如果你想被告知对话框被明确取消(而不是正常关闭),那么你应该注册一个
DialogInterface.OnCancelListener with setOnCancelListener().
关于android - 我什么时候应该关闭对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8725741/