Android的异常和QUOT;指定的孩子已经有一个父..." [英] Android Exception "The specified child already has a parent..."

查看:101
本文介绍了Android的异常和QUOT;指定的孩子已经有一个父..."的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我米获得异常如下。任何人可以帮助我吗?

  

11月6日至16号:32:48.237:ERROR / AndroidRuntime(9223):   java.lang.IllegalStateException:指定的孩子已经有   父母。你必须先调用removeView()孩子的父母。

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

来源$ C ​​$下的 screen_pop_up.xml 的:

 < XML版本=1.0编码=UTF-8&GT?;
           < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android机器人:ID =@ + ID / linearLayout1机器人:layout_height =WRAP_CONTENT机器人:layout_width =match_parent&GT ;
            <的LinearLayout机器人:ID =@ + ID / headerLin机器人:layout_width =FILL_PARENT机器人:layout_height =WRAP_CONTENT>
                < RelativeLayout的机器人:layout_height =WRAP_CONTENT机器人:ID =@ + ID / relativeLayout1机器人:layout_width =FILL_PARENT>
                    <按钮机器人:layout_width =WRAP_CONTENT机器人:ID =@ + ID / button1的机器人:layout_height =WRAP_CONTENT机器人:文本=完成>< /按钮>
                    <的LinearLayout机器人:ID =@ + ID / linearLayout2机器人:layout_width =WRAP_CONTENT机器人:方向=横向机器人:layout_height =WRAP_CONTENT机器人:layout_alignParentRight =真正的>
                        <按钮机器人:layout_height =WRAP_CONTENT机器人:背景=@可绘制/ h_scale机器人:ID =@ + ID /按钮2机器人:layout_width =WRAP_CONTENT机器人:填充=15sp>< /按钮>
                        <按钮机器人:layout_height =WRAP_CONTENT机器人:背景=@可绘制/ v_scale机器人:ID =@ + ID /按钮3机器人:layout_width =WRAP_CONTENT机器人:填充=14sp>< /按钮>
                    < / LinearLayout中>
                < / RelativeLayout的>
           < / LinearLayout中>


        <的LinearLayout机器人:ID =@ + ID /琳琳机器人:layout_height =300SP机器人:layout_width =250sp>
        < / LinearLayout中>
        < / LinearLayout中>
 

来源$ C ​​$ c其中即时得到异常如下:

 最后一个对话框myDialog =新的对话框(MainECGActivity.this);
                myDialog.setContentView(R.layout.screen_pop_up);
                myDialog.setTitle(我的对话);

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

                myDialog.setCancelable(真正的);
                Button按钮=(按钮)myDialog.findViewById(R.id.button1);
                button.setOnClickListener(新OnClickListener(){
                @覆盖
                    公共无效的onClick(视图v){
                    myDialog.dismiss();
                    }
                });

                myDialog.show();
 

我已经经历了很多线程了这里,但我失去了一些东西。 先谢谢了。

解决方案

一个视图只能有一个单亲家庭。要添加视图(我猜重复使用)已经是另一种观点体系中的一部分。如果你真的想重新使用它(我建议你可能不),那么你必须从其父分离在其现有视图层次结构。

无论是返回ECGField.get(0)已经在一个视图层次结构。

I m getting exception as follow. Can anybody help me?

06-16 11:32:48.237: ERROR/AndroidRuntime(9223): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

        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)

Source code for 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>

Source code where i m getting the exception is as follows:

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();

I have gone through many threads here but I am missing something. Thanks in advance.

解决方案

A view can only have a single parent. The view that you are adding (I am guessing re-using) is already part of another view hierarchy. If you really want to reuse it (I would suggest you probably dont) then you have to detach it from its parent in its existing view hierarchy.

whatever is returned by ECGField.get(0) is already in a view hierarchy.

这篇关于Android的异常和QUOT;指定的孩子已经有一个父...&QUOT;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆