在Android上添加动态视图

时间:2012-05-28 16:34:01

标签: android views

我有以下代码:

scroll = (ScrollView) findViewById(R.id.scrollView1);
...
public void addItem(String str, int id) {
    LinearLayout lay = new LinearLayout(this);
    lay.setId(id);

    TextView txt = new TextView(this);
    txt.setText(str);

    lay.addView(txt);
    scroll.addView(lay);    
}

当我调用addItem()一旦它好了,但是当我调用它两次或更多时,就像这样:

addItem("text1",1);
addItem("text2",2);

我的应用崩溃了:(

1 个答案:

答案 0 :(得分:1)

这是因为ScrollView只能托管1个直接孩子。

您可以创建LinearLayout作为ScrollView的唯一子项,然后在LinearLayout方法中添加ScrollView而不是addItem

scroll = (ScrollView) findViewById(R.id.scrollView1);
LinearLayout lay = new LinearLayout(this);
scroll.addView(lay); 
// maybe do some more with lay here, or define it in xml instead of adding it here in the code
...
public void addItem(String str, int id) {
    LinearLayout lay2 = new LinearLayout(this);
    lay2.setId(id);

    TextView txt = new TextView(this);
    txt.setText(str);

    lay2.addView(txt);
    lay.addView(lay2);    
}