标签:
AlertDialog使用很方便,但是有一个问题就是:dismiss方法和cancel方法到底有什么不同?
AlertDialog继承与Dialog,现在各位看看结构图:
然后在Dialog类中找到了dismiss和cancel方法的实现。重要看dismiss的源码:
看明白了吧! 在cancel方法中调用了dismiss方法。 但是现在还有一个问题就是:mCancelMessage是什么?
private Message mCancelMessage; // 这是源码中的声明
然后再来看源码:
现在问题清楚了,就是如果你在创建AlertDialog的时候调用了setOnCancelListener 这个mCancelMessage变量有作用,否则dismiss和cancel等同。
Cancel the dialog. This is essentially the same as calling dismiss()
, but it will also call yourDialogInterface.OnCancelListener
(if registered).
取消对话框,基本上和调用dismiss效果一样。但是cancel同事也会调用DialogInterface.OnCancelListener注册的事件,如果注册了。
Dismiss this dialog, removing it from the screen. This method can be invoked safely from any thread. Note that you should not override this method to do cleanup when the dialog is dismissed, instead implement that inonStop()
.
参考:http://blog.csdn.net/cpcpc/article/details/6774823
Android_Dialog cancle 和dismiss 区别
标签:
原文地址:http://www.cnblogs.com/spring87/p/4272541.html