Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 指定的子级已存在父级错误。仅在不同循环中调用时发生_Java_Android_Android Linearlayout_Parent Child - Fatal编程技术网

Java 指定的子级已存在父级错误。仅在不同循环中调用时发生

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");

我正在尝试为android做一个线性布局。但是,要对布局进行排序,需要在将其添加到布局之前对其进行排序。但是,如果我想在以后添加对象,它会说子对象已经有了父对象。看起来他们是自动分配给父母的。这是正常代码,工作正常:

    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()的作用是什么?如果它返回与以前返回的视图相同的视图,当然它已经被添加到父视图中。只是重新启动,由于某种原因,它突然工作了。谢谢你的回复