2012-11-07 20 views
0

我想以编程方式添加一个围绕TextView和Button的LinearLayout。我希望它接受一个字符串数组,然后使用字符串数组的长度,使用他们自己的按钮添加许多TextView。Android:以编程方式添加多个Views

所以第一:

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

你刚开始的时候,只要做一个for循环,并将textviews添加到你的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(为它们设置文本),将它们存储在某种数组中。编辑的代码

+0

但他没有提及这些'TextViews',最好首先将它们放入'List'或'Array'中。 – tolgap

+0

他为什么需要参考? =/ –

+1

因为..他可能会在稍后想用'TextViews'做些什么? – tolgap

0

你可以做到以下几点:

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

但我真的觉得用一个ListView会获得更好的性能;)

相关问题