2011-06-16 30 views
5

我收到异常如下。有谁能够帮助我?Android例外“指定的孩子已经有一位家长...”

十一月6日至16日: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(); 

我已经通过这里很多线程不见了但我错过了一些东西。 在此先感谢。

+1

'ECGField.get(0)'是什么? – jamapag 2011-06-16 11:55:42

+0

如何帮助没有一点代码..? – ngesh 2011-06-16 12:00:32

回答

9

一个视图只能有一个父亲。您正在添加的视图(我猜是重用)已经是另一个视图层次结构的一部分。如果你真的想重用它(我建议你可能不用),那么你必须在现有的视图层次结构中将它从父项中分离出来。

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

+0

谢谢@ fleetway76 ... !! – 2011-06-16 13:51:37

相关问题