以编程方式向活动添加视图

时间:2011-08-09 15:21:41

标签: android android-layout android-tabhost

我在Tab的一个Activity的onCreate()上有这个代码:

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

只会显示第一个textview,并显示info [0]的正确值,但其他文本视图不存在。

任何想法我可能做错了什么? 感谢

3 个答案:

答案 0 :(得分:1)

LinearLayout的默认方向是水平的。所以其他TextViews位于第一个占据所有空间的右侧。将LinearLayout的方向更改为垂直。

答案 1 :(得分:0)

LinearLayout的标准高度和宽度为fill_parent。这使你的第一个textView使用隐藏其余视图的所有空间(将它们放在屏幕之外)。

您可以将linlay的方向更改为垂直,或更改不同文本视图的宽度。您需要使用LinearLayout.LayoutParams来实现此目的。

答案 2 :(得分:0)

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

试试这个代码块