在Android中被取消或取消的对话框有什么区别?

Aal*_*Aal 182 android

就像标题所说,在Android中被取消或取消的对话框有什么区别?

Lee*_*Lee 178

通常,当作业完成并从屏幕上删除时,对话框将被取消.当用户想要转义对话框并按下"返回"按钮时,将取消对话框.

例如,屏幕上有一个标准的"是/否"对话框.如果用户单击"否",则会关闭该对话框,并将"否"的值返回给调用者.如果不是选择"是"或"否",则用户单击"返回"以退出对话框而不是进行选择,然后取消对话框并且不会向调用者返回任何值.

  • 如果您正在使用DatePickerDialog,则应使用OnDateSetListener在日期更改时收到通知.如果有人点击取消按钮...那么它将不会被调用,对话框将自行消失.对于DatePickerDialog的正常使用,您不需要设置其他侦听器. (2认同)

hot*_*309 26

dismiss是您必须在代码中明确调用的东西,通常是为了响应您的代码中的按钮上的单击事件Dialog.如果你愿意,你可以打电话dismissDialogActivity,然后打电话dismissDialog.

cancel方法仅在您的代码中显式调用时执行,或者当您的cancelable Dialog打开时用户按下BACK按钮时执行(如@Lee所述).

如果您使用的是DatePicker,那么所有这些仍然是这种情况.正如@Lee所说,DatePickerDialog.OnDateSetListener只是检测用户何时从中选择了一个日期DatePicker.

Android开发者参考提供更多信息Dialog秒.


ucM*_*dia 10

Dismiss调用关闭按钮可将对话框从屏幕上删除。可以从任何线程安全地调用此方法。请注意,在关闭对话框时,您不应覆盖此方法进行清理,而应在onStop中实现该方法

Cancel调用取消,取消对话框。这本质上与调用dismiss()相同,但是如果注册,它也会调用DialogInterface.OnCancelListener

Hide 此方法隐藏对话框,但不要关闭它。

有关更多信息,请参见此处

  • @ВладиславШестернин 绝对是这样,这没有区别 (2认同)

小智 9

区别在于将值返回给调用者函数。

dialog.cancel()通常会在用户点击后退按钮而不是选择警报对话框提供的选项(例如“确定”/“关闭”)并向调用者返回 null/无值时调用。While

dialog.dismiss()通常在用户从警报对话框提供的选项中进行选择时调用,例如点击对话框上的“关闭”按钮将关闭对话框并将非空对应值返回给调用者。就是这样。