如果我有
private AlertDialog somePrompt;
后来我打电话给
somePrompt.dismiss();
或
somePrompt.cancel();
如果此对话框之前未显示为somePrompt.show()
,则会导致应用程序崩溃。我需要确保取消或取消此对话框,以便如何检查它是否显示/可见?
答案 0 :(得分:1)
您的应用很可能会崩溃,因为您没有在这些情况下初始化AlertDialog
,因为您没有在其上调用show()
。您可能只是在调用show(). You need to check if they are
null`之前初始化它们,然后才调用它们。
if (somePrompt != null)
{
somePrompt.dismiss();
}
如果这没有用,那么请从崩溃中发布你的logcat。
另外,如果您在调用之前需要查看是否显示,那么您可以添加isShowing支票
if (somePrompt != null && somePrompt.isShowing())
{
somePrompt.dismiss();
}