报错: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