在Android TextView中添加换行符的问题

时间:2013-11-25 08:02:04

标签: java android line-breaks

我有一个TextL,其maxLines为10,而singleLine设置为false。

当我做

之类的事情时
TextView text = (TextView) findViewById(R.id.print);
text.setText("first line\n"+"second line\n"+"third line");

TextView工作中的换行没有问题。

第一行

第二行

第三行

然而,当我这样做时:

InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
while ( (receiveString = bufferedReader.readLine()) != null ) {
     ret = ret + receiveString + "\n";
}
view.setText(ret);

我得到的结果是:第一个linesecond linethird line

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

执行这个简单的代码 -

private void check() {
    SigmaLog.d("first line\n" + "second line");
    String receiveString = "";
    String newString = "first line";
    int i = 0;
    while (i < 2) {
        receiveString += newString + "\n";
        newString = "second line";
        i++;
    }
    SigmaLog.d(receiveString);
}

此代码将第二个字符串输出到第一个字符串。 这与您的代码相同。

实际上 bufferedReader.readLine()输出字符串,无论它在一条线上获取,直到它到达断路器,如\ n等。 我认为你的循环只运行一次它在一行中传递给你并从循环中退出所以下一次执行不存在而且没有更多字符串所以它怎么能进入下一行。 应用日志以在每次循环执行时检查字符串的正确值。

答案 1 :(得分:0)

1)制作:StringBuffer ret = new StringBuffer();

2)在其中附加您想要的消息:       ret.append(receiveString).append("\n");

3)设置文字:       view.setText(ret.toString());