2014-10-22 147 views
0

我目前正在兩個dialogfragments之間傳遞數據。每當對話框片段2完成。它將從到對話片段1。這裏對於對話片段1的方法傳遞的數據,實現了在對話片段創建2.指定的孩子已經有父母

對話框片段1

@Override 
public void updateContributor(ArrayList<View> imageView) { 
    System.out.println("Contributors received from contributer's fragment: " + imageView); 
    for (View child : imageView) 
    { 
     if (child instanceof ImageView) { 
      ImageView childImageView = (ImageView) child; 
      ll_contributor_list.addView(childImageView); 
     } 
    } 
} 

對話框片段2的界面

MusicRecorderFragment fragment = (MusicRecorderFragment) getFragmentManager().findFragmentByTag("record_fragment"); 


      ArrayList<View> views = getAllChildren(ll); 

      /*setArguments(args);*/ 
      fragment.updateContributor(views); 
      getDialog().dismiss(); 

java.lang.IllegalStateException:指定的孩子已經有一個父。您必須先調用子對象的父對象的removeView()。

回答

0

你會得到這個異常,因爲你的視圖已經添加了一些佈局,你試圖再次將它添加到貢獻者列表,我猜這是一個佈局。 (ll_contributor_list.addView(childImageView);

嘗試僅收集數據並在另一個片段上重新創建視圖,而不是試圖將已添加的視圖添加到另一個佈局。

+0

是否有另一種方式添加一個項目到已添加視圖的佈局? – 2014-10-22 08:25:28

+0

如果你使用xml創建視圖,那麼答案是否定的。如果你動態添加它們,那麼你可以使用removeView和addView方法。 – Alex 2014-10-22 08:31:26

相關問題