gpt4 book ai didi

Android RuntimeException onCreateDialog 没有为 id 创建对话框

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:58 25 4
gpt4 key购买 nike

我有一个应用程序,您可以使用它来显示和关闭多个对话框:

showDialog(...)
removeDialog(...)

我稍微玩了一下应用程序,当屏幕上没有任何对话框时,我按下菜单按钮,然后转到主 android 屏幕。

一段时间后,我再次进入我的应用程序,有时,我得到这个 RuntimeException:

java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
at android.app.ActivityThread.access$2200(ActivityThread.java:126)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4595)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4
at android.app.Activity.createDialog(Activity.java:878)
at android.app.Activity.restoreManagedDialogs(Activity.java:867)
at android.app.Activity.performRestoreInstanceState(Activity.java:815)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1096)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2565)
... 11 more

有什么想法吗?

非常感谢。

更新,更多信息:

当前的 onCreateDialog 实现是:

protected Dialog onCreateDialog(int id){
Builder b = new AlertDialog.Builder(this);
if(id == 4){
b.setMessage(...);
b.setItems(items, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
Intent i = new Intent(Current.this, Another.class);
startActivity(i);
}
});
return b.create();
}
return null;
}

为了调用这个函数我做了:

removeDialog(4);
showDialog(4);

最佳答案

在 API 级别 8 中,onCreateDialog(int)deprecated支持 onCreateDialog(int,Bundle)。如果您仅实现后一种方法并在 API 级别低于 8 的设备上运行应用程序,您将收到所述错误消息。

解决方案是实现onCreateDialog(int)

关于Android RuntimeException onCreateDialog 没有为 id 创建对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4225526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com