setOnDismissListener作用 (showDialog和onCreateDialog)

先说下Activity里面有showDialog和onCreateDialog两个函数:

在某个地方你想弹出一个dialog,可以这样做,在onCreateDialog里面new一个Diloag,然后在想要触发dialog的地方调用showDialog即可。

showDialog(id)先是从缓存也就是hashMap里面查看有木有这个id也就key对应的dialog对象,如果有则取出来,如果没有则new一个dialog对象

这样就会产生一个问题,假若说这个dialog自带数据,比方说日期dialog,我修改了原来的日期,但是我点击取消或者点击back键,之后,然后又触发改日期dialog,结果日期

不是原来保存的那个日期,而是刚才我修改之后的日期,这里就出问题了,原因是原来缓存里的dialog没有置null,再次触发dialog选择了重用以前的对象,所以造成了修改之后没有保存的数据替代保存的数据假象,解决的办法也很简单注册一个监听器即可setOnDismissListener在里面dismissdialog即可。或者removedialog。这样无论是点击back键还是点击取消button都不会出现修改之后没有保存的数据成了默认显示在dialog里面

猜你喜欢

转载自blog.csdn.net/weixin_38503885/article/details/82767788