我有以下代码:
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);
我的应用崩溃了:(
答案 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);
}