Динамическое добавление TextView в ScrollView на Android - PullRequest
1 голос
/ 28 октября 2011

Я пытаюсь заставить ScrollView вести себя как ListView.Каждая строка будет TextView добавляется динамически.Поэтому я пробую этот код

this.scrollView = (ScrollView) findViewById(R.id.scrollView1);
this.linearLayout = (LinearLayout) findViewById(R.id.linearLayout2);
this.linearLayout.setOrientation(LinearLayout.VERTICAL);
TextView[] tx = new TextView[10];
for (int i = 0; i < 10; i++) {
    tx[i] = new TextView(this);
    tx[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
tx[i].setText("This is the textviewNo" + i);
this.linearLayout.addView(tx[i]);
}
this.scrollView.addView(this.linearLayout);
setContentView(this.scrollView);

Но я получаю это исключение

10-28 13:35:59.120: ERROR/AndroidRuntime(2346): Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child

в строке this.scrollView.addView (this.linearLayout) Что я делаю неправильно?Спасибо

1 Ответ

4 голосов
/ 28 октября 2011

Исключение очевидно: вы не можете добавить более одного дочернего элемента в ScrollView.Из вашего кода я предполагаю, что linearLayout2 уже внутри ScrollView?Если это так, то вам вообще не нужно

this.scrollView.addView(this.linearLayout);

, поскольку вы добавляете TextViews в LinearLayout, который уже находится внутри ScrollView

...