我目前正在两个对话片段之间传递数据。每当对话框片段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 :(得分:0)
您收到此异常是因为您的视图已添加到某些布局中,并且您尝试将其再次添加到参与者列表中,我猜这是一个布局。 (ll_contributor_list.addView(childImageView);
)
尝试收集数据并在其他片段上重新创建视图,而不是尝试将已添加的视图添加到另一个布局。