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]);
}
我需要做那样的事情......所以它会显示为
一二三四 五六。不能修复一行中只显示四个单词,只想要适合屏幕并且看起来像一个段落。请给我一些建议。
答案 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]);