0

我有以下代码:

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);

我的应用程序崩溃:(

4

1 回答 1

1

这是因为ScrollView只能容纳 1 个直接孩子。

您可以将 a 创建LinearLayout为 的唯一子级ScrollView,然后将其添加到方法中的而LinearLayout不是。ScrollViewaddItem

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);    
}
于 2012-05-28T16:45:11.877 回答