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()を呼び出すと、それは大丈夫ですが、2回以上呼び出すと、次のようになります。

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

私のアプリがクラッシュします:(

4

1 に答える 1

1

これは、ScrollView直接の子を1つしかホストできないためです。

LinearLayoutの唯一の子としてを作成し、メソッドの代わりににScrollView追加することができます。LinearLayoutScrollViewaddItem

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 に答える