安卓异常 "指定的子项已经有父项..."

5

我遇到了以下异常,有人可以帮助我吗?

06-16 11:32:48.237: ERROR/AndroidRuntime(9223): java.lang.IllegalStateException: 指定的子项已经有一个父级。您必须先调用removeView()方法来删除该子项的父级。

        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at android.view.ViewGroup.addViewInner(ViewGroup.java:1970)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at android.view.ViewGroup.addView(ViewGroup.java:1865)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at android.view.ViewGroup.addView(ViewGroup.java:1822)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at android.view.ViewGroup.addView(ViewGroup.java:1802)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at com.mVisum_philips.MainECGActivity.popupEvent(MainECGActivity.java:628)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at com.mVisum_philips.MainECGActivity$1.onClick(MainECGActivity.java:195)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at android.view.View.performClick(View.java:2408)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at android.view.View$PerformClick.run(View.java:8816)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at android.os.Handler.handleCallback(Handler.java:587)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at android.os.Handler.dispatchMessage(Handler.java:92)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at android.os.Looper.loop(Looper.java:123)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at android.app.ActivityThread.main(ActivityThread.java:4627)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at java.lang.reflect.Method.invokeNative(Native Method)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at java.lang.reflect.Method.invoke(Method.java:521)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
        06-16 11:32:48.237: ERROR/AndroidRuntime(9223):     at dalvik.system.NativeStart.main(Native Method)

screen_pop_up.xml 的源代码:

<?xml version="1.0" encoding="utf-8"?>
           <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">
            <LinearLayout android:id="@+id/headerLin" android:layout_width="fill_parent" android:layout_height="wrap_content">
                <RelativeLayout android:layout_height="wrap_content" android:id="@+id/relativeLayout1" android:layout_width="fill_parent">
                    <Button android:layout_width="wrap_content" android:id="@+id/button1" android:layout_height="wrap_content" android:text="Done"></Button>
                    <LinearLayout android:id="@+id/linearLayout2" android:layout_width="wrap_content" android:orientation="horizontal" android:layout_height="wrap_content" android:layout_alignParentRight="true">
                        <Button android:layout_height="wrap_content" android:background="@drawable/h_scale" android:id="@+id/button2" android:layout_width="wrap_content" android:padding="15sp"></Button>
                        <Button android:layout_height="wrap_content" android:background="@drawable/v_scale" android:id="@+id/button3" android:layout_width="wrap_content" android:padding="14sp"></Button>
                    </LinearLayout>
                </RelativeLayout>
           </LinearLayout>


        <LinearLayout android:id="@+id/linLin" android:layout_height="300sp" android:layout_width="250sp">
        </LinearLayout>
        </LinearLayout>

我需要翻译的内容是:

我遇到异常的源代码如下:

final Dialog myDialog = new Dialog(MainECGActivity.this);
                myDialog.setContentView(R.layout.screen_pop_up);
                myDialog.setTitle("My Dialog");

                LinearLayout myLin = (LinearLayout) myDialog.findViewById(R.id.linLin);
                **myLin.addView(ECGField.get(0));**

                myDialog.setCancelable(true);
                Button button = (Button) myDialog.findViewById(R.id.button1);
                button.setOnClickListener(new OnClickListener() {
                @Override
                    public void onClick(View v) {
                    myDialog.dismiss();
                    }
                });

                myDialog.show();

我已经阅读了很多讨论帖,但是我似乎还缺少一些信息。

提前感谢。


如何在没有一行代码的情况下提供帮助呢? - ngesh
1个回答

9

一个视图只能有一个父级。您正在添加的视图(我猜测是重新使用)已经是另一个视图层次结构的一部分。如果您真的想重用它(我建议您可能不需要),那么您必须从其现有视图层次结构中分离它的父级。

ECGField.get(0)返回的任何内容都已经在一个视图层次结构中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接