Android 发现是否有任何对话框正在打开?
我有一个BaseActivity可以在它的代码上打开对话框,但我不能更改这个类代码,所以我在我的子类上扩展了它,如何知道对话框何时打开?Dialog有一个isShowing()方法,如果对话框当前可见,它应该返回。因此,您可以使用它查看对话框是否正在显示,并使用dismissDialog()将其隐藏。您只需保留对在onCreateDialog()中创建的对话框的引用。Dialog有一个isShowing()方法,如果对话框当前可见,该方法应返回。因此,您可以使用它查看对话框是否正在显示,并使用dismissDialog()将其隐藏。您只需保留对在onCreateDialog()中创建的对话框的引用。您可以尝试覆盖Android 发现是否有任何对话框正在打开?,android,android-dialog,Android,Android Dialog,我有一个BaseActivity可以在它的代码上打开对话框,但我不能更改这个类代码,所以我在我的子类上扩展了它,如何知道对话框何时打开?Dialog有一个isShowing()方法,如果对话框当前可见,它应该返回。因此,您可以使用它查看对话框是否正在显示,并使用dismissDialog()将其隐藏。您只需保留对在onCreateDialog()中创建的对话框的引用。Dialog有一个isShowing()方法,如果对话框当前可见,该方法应返回。因此,您可以使用它查看对话框是否正在显示,并使用d
onCreateDialog()
。这将传递一个引用ID,该ID在活动调用showDialog(ID)
时使用。如果您只需要知道是否将显示任何对话框
,那么我想您可以调用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)
执行类似的操作,对话框打开时总是调用它。您可以尝试覆盖onCreateDialog()
。这将传递一个引用ID,该ID在活动调用showDialog(ID)
时使用。如果您只需要知道是否将显示任何对话框
,那么我想您可以调用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)
执行类似的操作,对话框打开时总是调用它。我没有对对话框的任何引用,我需要截取它的创建以保留一个。我没有对对话框的任何引用,我需要截取它的创建以保留一个。