Android:动态地向线性布局添加多个视图

时间:2012-11-01 06:44:32

标签: android textview

我在这里检查了解决方案:

Adding multiple views of the same type

鉴于此,每次添加时都会创建一个新视图,而不是只更改一个视图。

但我这样做:

for (int i = 0; i < 10; i++) {

LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(
                    CommentsActivity.LAYOUT_INFLATER_SERVICE);
View cv = vi.inflate(R.layout.item, null);

TextView textView1 = (TextView) cv.findViewById(R.id.tv1);
textView1.setText("-" + i);
TextView textView2 = (TextView) cv.findViewById(R.id.tv2);
textView2.setText("--" + i);
LinearLayout insertPoint = (LinearLayout) findViewById(R.id.layout);
insertPoint.addView(cv, 0, new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
}

因此就像为每个 i 创建一个新的inflater和视图一样。但我只是得到了最后一项。

ie ..,只有1个inflatedView,其中tv1为 -9 ,tv2为 - 9

似乎每次进入for循环时,旧视图都会被新视图所取代。如何添加所有10个视图??

THANKYOU

1 个答案:

答案 0 :(得分:3)

通常我会用这个

private void renewDetail(){
        llDetail.removeAllViews();
        for (int i = 0; i < 10; i++) {
            llDetail.addView(new ChildDetailNotePieDiagram(context, "Name", 1000, 10));
        }
    }

逻辑首先我从父布局清除所有视图,然后将视图添加到父布局。

其中llDetail是一个线性布局,我创建一个线性布局类ChildDetailNotePieDiagram并将其添加到线性布局,所以基本上它与你现在使用的解决方案不同 但我认为你可以尝试我的解决方案,如果你想:) 请随时在评论中询问有关此问题的任何问题