1
String[] textArray={"one","two","three", "four", "five", "six"};

int length=textArray.length;

TextView[] textViewArray = new TextView[length];
LinearLayout layout = (LinearLayout) findViewById(R.id.linear);

for(int i=0;i<length;i++){
   textViewArray[i] = new TextView(this);
   textViewArray[i].setText(textArray[i]);
   layout.addView(textViewArray[i]);
}

我需要做类似的事情..所以它会显示为

一二三四五六

不能固定一行只显示四个字,只想适合屏幕,看起来像一个段落。请给我建议。

4

4 回答 4

3

您可以将字符串附加到 textview 并为添加的每个字符串附加空间,如下所示。您不需要文本视图数组。只需将字符串附加到相同的位置即可。

TextView tv= new TextView(MainActivtiy.this);
tv.setText(""); 
for(int i=0;i<textArray.length;i++)
{
    tv.append(textArray[i]);
    tv.append(" "); 
}
layout.addView(tv);

编辑:

TextView tv= new TextView(MainActivtiy.this);
tv.setText(""); 
for(int i=0;i<textArray.length;i++)
{
     SpannableString ss1=  new SpannableString(textArray[i]); 
     ss1.setSpan(new MyClickableSpan(textArray[i]), 0, ss1.length(),  
     tv.append(ss1);
     tv.append(" "); 
}
layout.addView(tv);

MyClickableSpan 类

 class MyClickableSpan extends ClickableSpan{   

String clicked;
    public MyClickableSpan(String string) {
    // TODO Auto-generated constructor stub
super();
clicked =string;    
}

public void onClick(View tv) {

   Toast.makeText(MainActivity.this,clicked ,Toast.LENGTH_SHORT).show();
    //do what is required
}

public void updateDrawState(TextPaint ds) {
   ds.setColor(Color.BLUE);//set text color 
   //ds.setStrokeWidth(15f);
   ds.setUnderlineText(true); // set to false to remove underline
}
} 
于 2013-04-19T05:45:38.400 回答
2

可以如下实现

String text = "";
for(int i=0;i<length;i++){
    text += text + " " + textArray[i];
}

tv = new TextView(this);
tv.setText(text);
tv.setSingleLine(false);
于 2013-04-19T05:54:38.433 回答
0

你可以做这样的事情

StringBuffer text = new StringBuffer();    
for(int i=0;i<length;i++){
    text.append(textArray[i]);
}

textViewArray = new TextView(this);
textViewArray.setText(text.toString().trim());
textViewArray.setSingleLine(false);
layout.addView(textViewArray);
于 2013-04-19T05:46:33.607 回答
0

声明一个字符串对象并继续向其附加数组值,并在字符串完成后将值设置为 textview。

String para = "";
for(int i=0;i<length;i++){
 para += textArray[i] + " ";
}
textViewArray[i] = new TextView(this);
textViewArray[i].setText(para);
layout.addView(textViewArray[i]);
于 2013-04-19T05:48:49.163 回答