我有一个BaseActivity在它的代码上打开Dialogs,但我不能改变这个类代码,所以我在我的子类上扩展它,如何知道Dialog何时打开?
答案 0 :(得分:1)
您可以尝试覆盖onCreateDialog()
。这会传递Activity调用showDialog(id)
时使用的引用ID。如果你只是需要知道是否会显示任何Dialog
,那么我想你可以调用super来返回将显示的对话框。
@Override
protected Dialog onCreateDialog(int id){
Dialog dialogToBeShown = super.onCreateDialog(id);
if(dialogToBeShown != null){
***Do whatever you have to with the dialog***
}
return dialogToBeShown;
}
修改强>
这仅在第一次创建对话框时才有效。您可以使用onPrepareDialog(int id, Dialog dialog, Bundle args)
执行类似操作,在打开对话框时始终会调用它。
答案 1 :(得分:0)
Dialog有一个isShowing()方法,如果对话框当前可见,则该方法应该返回。因此,您可以使用它来查看是否显示对话框并使用dismissDialog()隐藏它。您只需要保留对在onCreateDialog()中创建的对话框的引用。