我正在尝试使用托管对话框.
我注意到,在我第一次显示它之后,后续创建实际上并没有创建对话框的新实例,它们似乎只是重用第一个.
如果我想阻止它,并在每次通话时获得一个全新的实例,这是正确的方法吗?:
@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的正确方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)