使用textview android数组创建一个段落

时间:2013-04-19 05:41:16

标签: android

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 个答案:

答案 0 :(得分: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

 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
}
} 

答案 1 :(得分:2)

可以实现如下

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

tv = new TextView(this);
tv.setText(text);
tv.setSingleLine(false);

答案 2 :(得分: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);

答案 3 :(得分: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]);