Java 指定的子级已存在父级错误。仅在不同循环中调用时发生
我正在尝试为android做一个线性布局。但是,要对布局进行排序,需要在将其添加到布局之前对其进行排序。但是,如果我想在以后添加对象,它会说子对象已经有了父对象。看起来他们是自动分配给父母的。这是正常代码,工作正常:Java 指定的子级已存在父级错误。仅在不同循环中调用时发生,java,android,android-linearlayout,parent-child,Java,Android,Android Linearlayout,Parent Child,我正在尝试为android做一个线性布局。但是,要对布局进行排序,需要在将其添加到布局之前对其进行排序。但是,如果我想在以后添加对象,它会说子对象已经有了父对象。看起来他们是自动分配给父母的。这是正常代码,工作正常: post_list = new ArrayList<Post>(); for(int i = 0; i < 100; i++) { Post post = new Post(this, "#4c66a4", "#FFFFFF");
post_list = new ArrayList<Post>();
for(int i = 0; i < 100; i++) {
Post post = new Post(this, "#4c66a4", "#FFFFFF");
post_list.add(post);
View list = (View) post.show();
ll.addView(list, layoutParams);
}
post_list=new ArrayList();
对于(int i=0;i<100;i++){
Post Post=新的Post(这是“#4c66a4”,“#FFFFFF”);
post_列表。添加(post);
视图列表=(视图)post.show();
ll.addView(列表、布局参数);
}
但是,当我以后要添加视图时,将不再可能:
post_list = new ArrayList<Post>();
for(int i = 0; i < 100; i++) {
Post post = new Post(this, "#4c66a4", "#FFFFFF");
post_list.add(post);
}
for (int i = 0; i < post_list.size(); i++) {
Post p = post_list.get(i);
View list = (View) p.show();
ll.addView(list, layoutParams);
}
post_list=new ArrayList();
对于(int i=0;i<100;i++){
Post Post=新的Post(这是“#4c66a4”,“#FFFFFF”);
post_列表。添加(post);
}
对于(int i=0;i
你知道这个问题是怎么造成的吗?
提前感谢如果您必须查找添加父级的原因,我们需要查看logcat和更多代码。但很可能这就是原因: 但是,如果您只是试图“强制”添加视图,则在添加视图之前调用此命令:
((ViewGroup)list.getParent()).removeView(list);
从其父视图中删除视图并将其添加到您喜欢的位置。show()的作用是什么?如果它返回与以前返回的视图相同的视图,当然它已经被添加到父视图中。只是重新启动,由于某种原因,它突然工作了。谢谢你的回复