android - 指定的 child 已经有一个 parent

标签 android android-alertdialog

我使用生成器创建了 AlertDialog。它在我们调用 show() 方法时显示。我在该对话框中有取消 按钮。我可以通过单击取消按钮来取消该对话框。我的问题是一旦取消显示对话框,就无法再次显示对话框。它抛出如下异常:

09-09 12:25:06.441: ERROR/AndroidRuntime(2244): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
09-09 12:25:06.441: ERROR/AndroidRuntime(2244):     at android.view.ViewGroup.addViewInner(ViewGroup.java:1970)
09-09 12:25:06.441: ERROR/AndroidRuntime(2244):     at android.view.ViewGroup.addView(ViewGroup.java:1865)
09-09 12:25:06.441: ERROR/AndroidRuntime(2244):     at android.view.ViewGroup.addView(ViewGroup.java:1845)
09-09 12:25:06.441: ERROR/AndroidRuntime(2244):     at com.android.internal.app.AlertController.setupView(AlertController.java:364)
09-09 12:25:06.441: ERROR/AndroidRuntime(2244):     at com.android.internal.app.AlertController.installContent(AlertController.java:205)
09-09 12:25:06.441: ERROR/AndroidRuntime(2244):     at android.app.AlertDialog.onCreate(AlertDialog.java:251)

最佳答案

不要显示相同的对话框,创建一个新的。

发生这种情况是因为您试图重新使用已经创建(可能在 onCreate)并使用过一次的对话框。重用对话框没有问题,但在问题中指定的子项( View )已经有一个父项(对话框)。您可以通过删除父项继续,也可以创建一个新的父项,例如:-

alertDialog=new AlertDialog(Context);
alertDialog.setView(yourView);
alertDialog.show();

关于android - 指定的 child 已经有一个 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3674413/

相关文章:

android - 将我的 TTS 引擎添加到像 SAPI 一样的 Android TTS 服务

使用 ScrollView 返回 Fragment 时的 Android 共享元素转换

android - 音频无法在Monaca上播放

android - 如何在android中关闭AlertDialog

android - 窗口管理器坏 token 异常

c# - Unity - 不同的手机尺寸

android - view.findViewById(R.id....) 和 findViewById(R.id...) 之间的区别

java - BasicActivity 中的 AlertDialog 不起作用 Theme.AppCompat

android - 在 android 5.0 以下更改 alertDialog 的标题颜色

所有 Android 版本的 Android AlertDialog 设计相同