Android:以编程方式添加多个视图

时间:2012-11-07 19:16:41

标签: android arrays view

我想以编程方式添加一个围绕TextView和Button的LinearLayout。我希望它采用一个String数组,然后使用字符串数组的长度,添加许多TextViews,每个TextViews都有自己的按钮。

首先:

String [] s = { .... the values ....}
int sL = s.length;
TextView t1 = new TextView (this);
// then somehow create t2, t3... etc. matching the length of the String array.

这是最好的方法吗?还是有其他方法可以做到这一点?对于某些上下文,它是一个测验应用程序,我已经创建了一个资源内的类别列表作为值,我正在尝试以编程方式让我的应用程序创建尽可能多的TextViews,然后将每个TextView设置为每个类别然后获取每个类别按钮将用户带到该类问题。

2 个答案:

答案 0 :(得分:2)

您正在启动它,只需执行for循环并将textview添加到linearlayout。

// You linearlayout in which you want your textview
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mylayout);
linearLayout.setBackgroundColor(Color.TRANSPARENT);

String [] s = { .... the values ....}
int sL = s.length;
TextView textView = null;

// For later use if you'd like
ArrayList<TextView> tViews = new ArrayList<TextView>();

for (int i = 0; i < sL; i++)
{
    textView = new TextView(this);
    textView.setText(s[i]);
    linearLayout.addView(textView);
    tViews.add(textView);
}

这种做法没有错。如果您想稍后使用这些textview(为它们设置文本或其他东西)将它们存储在某种类型的数组中。编辑过的代码

答案 1 :(得分:0)

您可以执行以下操作:

for(int i=0;i<s.length;i++){
  TextView t=new TextView(this);
  t.setText(s[i]);
  yourLinearLayout.addView(t);
}

但我真的认为使用ListView会提高性能;)