为什么我得到java.lang.IllegalStateException:指定的子节点已经有父节点

时间:2016-02-01 14:46:08

标签: java android

我遇到了这个问题:

  

java.lang.IllegalStateException:指定的子节点已经有了   家长。您必须先在孩子的父母身上调用removeView()。

这是我的代码:

if (!suggestedWords.isEmpty()) {
   if (suggestedWords.get(0).contains("call michael")) {
      //Get michael contact phone number
      //Call michael
   }
}

2 个答案:

答案 0 :(得分:1)

问题在于这一行

$ awk '$11!=1 || ($20!="not_recommended" && $20!="neutral")' file

5306083 TGATCAATCTCATAAC[A/C]AAAAAAAAA  consensus_24    211 1   species 0   0   0   T   0   7   T   recommended 0.708   F   0   -100    T   recommended

初始化scrollView.addView(linearLayout); 您正在使用linearLayout,这意味着findViewById已经有父级,违反了这种方式,即每个视图只能拥有一个父级的约束

答案 1 :(得分:1)

如果孩子View已有父母,则无法将任何View添加到其他View

在您的情况下,您应该以编程方式创建LinearLayout,就像创建ScrollView

一样

这样做

public void fillFormules(List<Category> objectsTextToShow)
{
    LinearLayout layoutItemDetail = (LinearLayout) view.findViewById(R.id.layoutItemDetail);
    LinearLayout linearLayout;

    for (int j = 0; j <objectsTextToShow.size() ; j++) {
        linearLayout = new LinearLayout(getActivity());
        linearLayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
        linearLayout.setOrientation(LinearLayout.HORIZONTAL); // or VERTICAL as per your needs
        ScrollView scrollView = new ScrollView(getActivity());
        ...
        ...
        ...
    }