android– 解雇Dialog的正确方法

android– 解雇Dialog的正确方法,第1张

概述我正在尝试使用托管对话框.我注意到,在我第一次显示它之后,后续创建实际上并没有创建对话框的新实例,它们似乎只是重用第一个.如果我想阻止它,并在每次通话时获得一个全新的实例,这是正确的方法吗?:@OverrideprotectedDialogonCreateDialog(intid){switch(id){

我正在尝试使用托管对话框.

我注意到,在我第一次显示它之后,后续创建实际上并没有创建对话框的新实例,它们似乎只是重用第一个.

如果我想阻止它,并在每次通话时获得一个全新的实例,这是正确的方法吗?:

@OverrIDeprotected Dialog onCreateDialog(int ID) {    switch (ID) {        case MY_DIALOG_ID:            MyDlg dlg = new MyDlg(this);            dlg.setondismissListener(new OndismissListener() {                public voID ondismiss(DialogInterface dialog) {                    removeDialog(MY_DIALOG_ID);                }            });            return dlg;    }    return null;}

所以我想removeDialog()调用可以解决这个问题,但我的ondismiss()处理程序应该在被杀死的对话框的每个实例中调用,对(如Dialog.cancel(),Dialog.dismiss(),点击后退键) ?

解决方法:

正如您所注意到的,onCreateDialog()方法仅在您第一次显示对话框时被调用.它负责构建对话框.事实上,每次要显示对话框时,您都不必“破坏”对话框以强制调用onCreateDialog.您可以覆盖onPrepareDialog(int,Dialog) – 在显示对话框之前调用此对象. (它可以回收在之前的onCreateDialog调用中构建的对话框)“如果要在每次打开时更改对话框的任何属性,请定义此方法.”
问候!

总结

以上是内存溢出为你收集整理的android – 解雇Dialog的正确方法全部内容,希望文章能够帮你解决android – 解雇Dialog的正确方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存