2011-06-16 22 views
5

Estoy recibiendo una excepción de la siguiente manera. Alguien puede ayudarme?Excepción de Android "El hijo especificado ya tiene un padre ..."

06-16 11: 32: 48.237: ERROR/Android Runtime (9223): java.lang.IllegalStateException: El niño especificado ya tiene un padre . Primero debe llamar a removeView() en el padre del niño.

 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) 

El código fuente para 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> 

El código fuente, donde im conseguir la excepción es la siguiente:

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

He pasado por muchos hilos aquí pero me falta algo. Gracias de antemano.

+1

¿Qué es 'ECGField.get (0)'? – jamapag

+0

cómo ayudar sin un poco de código ...? – ngesh

Respuesta

9

Una vista solo puede tener un padre único. La vista que está agregando (supongo que volverá a usarla) ya es parte de otra jerarquía de vistas. Si realmente desea reutilizarlo (le sugiero que probablemente no lo haga), debe separarlo de su padre en su jerarquía de vistas existente.

lo devuelto por ECGField.get (0) ya se encuentra en una jerarquía de vistas.

+0

Gracias @ fleetway76 ... !! –

Cuestiones relacionadas