Добавление видов к действию программно - PullRequest
1 голос
/ 09 августа 2011

У меня есть этот код в onCreate () Activity, который находится внутри вкладки:

String[] info = getResources().getStringArray(R.array.fc_1);
TextView q = new TextView(this);
q.setText(info[0]);

TextView a1 = new TextView(this);
a1.setText(info[1]);

TextView a2 = new TextView(this);
a2.setText(info[2]);

TextView a3 = new TextView(this);
a3.setText(info[3]);

LinearLayout linlay = new LinearLayout(this);
linlay.addView(q);
linlay.addView(a1);
linlay.addView(a2);
linlay.addView(a3);
setContentView(linlay);

Что происходит, когда отображается только первое текстовое представление с правильным значением info [0], но других текстовых обзоров просто нет.

Есть идеи, что я могу делать неправильно?Спасибо

Ответы [ 3 ]

1 голос
/ 09 августа 2011

Ориентация по умолчанию для LinearLayout - горизонтальная.Таким образом, другие TextViews находятся справа от первого, который занимает все пространство.Измените ориентацию LinearLayout на вертикальную.

0 голосов
/ 09 августа 2011
String[] info = getResources().getStringArray(R.array.fc_1);

TextView q = new TextView(this);
q.setText(info[0]);
TextView a1 = new TextView(this);
a1.setText(info[1]);

TextView a2 = new TextView(this);
a2.setText(info[2]);

TextView a3 = new TextView(this);
a3.setText(info[3]);

LinearLayout linlay = new LinearLayout(this);
linlay.setOrientation(1);//set vertical orientation
linlay.addView(q);
linlay.addView(a1);
linlay.addView(a2);
linlay.addView(a3);
setContentView(linlay);

попробуйте этот блок кода

0 голосов
/ 09 августа 2011

Стандартной высотой и шириной LinearLayout является fill_parent. Это заставляет ваш первый textView использовать все пространство, скрывающее остальные виды (помещая их за пределы экрана).

Вы можете либо изменить ориентацию linlay на вертикальную, либо изменить ширину различных текстовых представлений. Вам нужно будет поиграть с LinearLayout.LayoutParams , чтобы добиться этого.

...