在布局中添加多个视图存在问题



我试图添加相同布局的多个视图。然而,当做下面的代码,我得到异常:java.lang.IllegalStateException:指定的孩子已经有一个父。你必须首先调用removeView()在子的父。

我做错了什么?谢谢!

class GetTrackTimer extends TimerTask {
            Activity act;
            View RootView;
            public GetTrackTimer(Activity ctx, View RootView)
            {
                this.act = ctx;
                this.RootView = RootView;
            }
            @Override
            public void run() {
                act.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {

                        if (TrackItems.getInstance().items == null)
                            return;
                        LinearLayout items = (LinearLayout) RootView.findViewById(R.id.itemslist);
                        LayoutInflater inflater = (LayoutInflater) act.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                        for (int i = 0; i < TrackItems.getInstance().items.length; i++)
                        {
                            View  itemView = inflater.inflate(R.layout.track_item,null);
                            TextView tv=  (TextView)itemView.findViewById(R.id.itemName);
                            tv.setText(TrackItems.getInstance().items[i].Item.ID + "");
                            items.addView(tv);
                        }
                    }
                });
            }
        }

你的textviewtv已经是膨胀的itemView的子视图,所以你不能把它作为子视图添加到另一个视图

items.addView(itemView);代替items.addView(tv);

这是因为你不能为一个子元素设置多个父元素。

在这里,items.addView(tv);你的tv被添加了多次,因此错误…

最新更新