解決API<8時引起的AlerDialog is not created – java.lan...

解決API<8時引起的AlerDialog is not created - java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 1

報錯:java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 php

首先解釋下showDialog()和onCreateDialog直接的關係。 java

api >= 8 時, showDialog(int id,Bundle b) --> onCreateDialog(int id,Bundle b) android

api < 8 時,showDialog(int id) ---> onCreateDialog(int id) 。此時,onCreateDialog(int)返回null將報錯,具體看代碼:
[url]http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.1_r2/android/app/Activity.java#Activity.showDialog%28int%29[/url] api

結論:
一、要使用showDialog(int id)顯示Dialog,就必須重寫onCreateDialog(int id)
二、使用showDialog(int id,Bundle b)顯示Dialog,可重寫onCreateDialog(int id,Bundle b)或onCreateDialog(int id)
三、默認onCreateDialog(int id,Bundle b)調用onCreateDialog(int id)
四、顯示Dialog時,如果不須要使用Bundle傳參數,可只重寫onCreateDialog(int id) app

其它參考:
[url]http://stackoverflow.com/questions/4225526/android-runtimeexception-oncreatedialog-did-not-create-a-dialog-for-id[/url]  google

頁:  [1]
相關文章
相關標籤/搜索