为什么.addView抛出此父/子异常?

时间:2015-03-20 13:34:27

标签: java android layout android-studio

您好!
我正在尝试在主要活动中的LinearLayout内创建动态TextView。该程序(应该是)根据需要将TextView从resultrow XML推送到activity_fivethreeone XML。 第parentLayout.addView(textView);行正在抛出此错误;

The specified child already has a parent. You must call removeView() on the child's parent first.

我尝试过类似问题的答案,但没有获胜 Fragments - The specified child already has a parent. You must call removeView() on the child's parent first
Call removeView() on the child's parent first


类:

try {
    LinearLayout parentLayout = (LinearLayout)findViewById(R.id.linLayout);
    LayoutInflater layoutInflater = getLayoutInflater();
    View view;
    for(int counter=0;counter<=theWeeksList.size();counter++){
        view = layoutInflater.inflate(R.layout.resultrow, parentLayout, false);
        TextView textView = (TextView)view.findViewById(R.id.resultRow);
        textView.setText(theWeeksList.get(counter));
        parentLayout.addView(textView);
    }
}

我试图使用removeView(),但无法坚持下去。

任何帮助将不胜感激!
谢谢!

2 个答案:

答案 0 :(得分:1)

textView已经作为父view,事实上您可以使用findViewById成功查找它。所以这一行:

parentLayout.addView(textView);

导致异常。您可能希望将view添加到parentLayout

parentLayout.addView(view);

因为它刚刚创建,所以它没有父级,可以作为子级添加

答案 1 :(得分:1)

您正在尝试添加已属于现有EditText的{​​{1}}。

删除行

ViewGroup

来自您的代码。你不需要这样做。替换为

parentLayout.addView(textView);