2013-11-24 21 views
0

如果我有AlertDialog.cancel()和AlertDialog.dismiss()崩潰的應用程序

private AlertDialog somePrompt; 

,後來我打電話

somePrompt.dismiss(); 

somePrompt.cancel(); 

這將崩潰的應用程序如果該對話框以前沒有顯示過像somePrompt.show()。我需要確保這個對話框被取消或解散,那麼如何檢查它是否顯示/可見?

+0

請參閱本http://stackoverflow.com/questions/6498670/cant-check -if-對話框的是,示出 – Coderji

回答

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(); 
}