2014-09-02 203 views
0

我想將linearlayout 2 [「secondrow」]添加到linearlayout 1 [「firstrow」],但它會拋出一個異常 指定的子項已經是父項,您必須調用removeview()對父子first.linearlayout1,linearlayout 2,linearlayout 3,linearlayout 4每個有4個按鈕。我的java代碼是低於將線性佈局2添加到線性佈局1

--------------------- ------- Java代碼--------------------------

private LinearLayout linearfirstRow; 
     private LinearLayout linearsecondRow; 
     private LinearLayout linearthirdRow; 
     private LinearLayout linearfourthRow; 
     private LinearLayout TemporaryLayout; 
     linearfirstRow=(LinearLayout)findViewById(R.id.firstrow); 
     linearsecondRow=(LinearLayout)findViewById(R.id.secondrow); 
     linearthirdRow=(LinearLayout)findViewById(R.id.thirdrow); 
     linearfourthRow=(LinearLayout)findViewById(R.id.fourththrow); 
       TemporaryLayout=linearsecondRow; 
          linearfirstRow.removeAllViews(); 
          linearsecondRow.removeAllViews(); 
      Throws error ---> linearfirstRow.addView(TemporaryLayout); 

   <?xml version="1.0" encoding="utf-8"?> 
       <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:orientation="vertical" > 
        <TextView 
          android:id="@+id/textView1" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_weight="1" 
          android:text="Medium Text" 
          android:textAppearance="?android:attr/textAppearanceMedium" /> 
          <LinearLayout 
      firstrow--> android:id="@+id/firstrow" 
         android:layout_width="match_parent" 
         android:layout_height="0dp" 
         android:layout_weight="25" 
         > 
         <Button 
          android:id="@+id/btn1" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="1" 
          android:layout_weight="1" /> 

         <Button 
          android:id="@+id/btn2" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="1" 
          android:layout_weight="1" /> 

         <Button 
          android:id="@+id/btn3" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="1" 
          android:layout_weight="1" /> 
         <Button 
          android:id="@+id/btn4" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="1" 
          android:layout_weight="1" /> 
        </LinearLayout> 
     secondrow-->  <LinearLayout 
         android:id="@+id/secondrow" 
         android:layout_width="match_parent" 
         android:layout_height="0dp" 
         android:layout_weight="25" 
         > 

         <Button 
          android:id="@+id/btn5" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="2" 
          android:layout_weight="1" /> 

         <Button 
          android:id="@+id/btn6" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="2" 
          android:layout_weight="1" /> 
         <Button 
          android:id="@+id/btn7" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="2" 
          android:layout_weight="1" /> 
         <Button 
          android:id="@+id/btn8" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="2" 
          android:layout_weight="1" /> 
        </LinearLayout> 
        <LinearLayout 
         android:id="@+id/thirdrow" 
         android:layout_width="match_parent" 
         android:layout_height="0dp" 
         android:layout_weight="25" > 

         <Button 
          android:id="@+id/btn9" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="3" 
          android:layout_weight="1" /> 

         <Button 
          android:id="@+id/btn10" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="3" 
          android:layout_weight="1" /> 
         <Button 
          android:id="@+id/btn11" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="3" 
          android:layout_weight="1" /> 
         <Button 
          android:id="@+id/btn12" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="3" 
          android:layout_weight="1" /> 
        </LinearLayout> 
        <LinearLayout 
         android:id="@+id/fourththrow" 
         android:layout_width="match_parent" 
         android:layout_height="0dp" 
         android:layout_weight="25"> 

         <Button 
          android:id="@+id/btn13" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="4" 
          android:layout_weight="1" /> 

         <Button 
          android:id="@+id/btn14" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="4" 
          android:layout_weight="1" /> 
         <Button 
          android:id="@+id/btn15" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="4" 
          android:layout_weight="1" /> 
         <Button 
          android:id="@+id/btn16" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:text="4" 
          android:layout_weight="1" /> 
        </LinearLayout> 

       </LinearLayout> 

回答

0

需要分離從其父TemporaryLayout/linearsecondRow的LinearLayout第一即

 private LinearLayout linearfirstRow; 
     private LinearLayout linearsecondRow; 
     private LinearLayout linearthirdRow; 
     private LinearLayout linearfourthRow; 
     private LinearLayout TemporaryLayout; 
     linearfirstRow=(LinearLayout)findViewById(R.id.firstrow); 
     linearsecondRow=(LinearLayout)findViewById(R.id.secondrow); 
     linearthirdRow=(LinearLayout)findViewById(R.id.thirdrow); 
     linearfourthRow=(LinearLayout)findViewById(R.id.fourththrow); 
       TemporaryLayout=linearsecondRow; 
          linearfirstRow.removeAllViews(); 
          linearsecondRow.removeAllViews(); 

//Add this although i dont know why the above two lines were used by you 
     ((LinearLayout)TemporaryLayout.getParent()).removeView(TemporaryLayout); 
     linearfirstRow.addView(TemporaryLayout); 
+0

謝謝你長了它。 – 2014-09-03 09:17:23

+0

請標記爲答案和上投票 – humblerookie 2014-09-03 10:19:53