【问题标题】:Issue with adding line breaks in Android TextView在 Android TextView 中添加换行符的问题
【发布时间】:2013-11-25 08:02:04
【问题描述】:

我有一个 maxLines 为 10 且 singleLine 设置为 false 的 TextView。

当我做类似的事情时

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);

我得到类似:第一行第二行第三行

任何帮助将不胜感激。

【问题讨论】:

  • ret,类型为String
  • 是的对不起,返回的是字符串。

标签: java android line-breaks


【解决方案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 等的换行符。 我认为你的循环只运行一次,无论它在一行中提供给你并退出循环,所以下一次执行不存在并且没有更多的字符串,所以它怎么能转到下一行。 应用日志以在每次循环执行时检查字符串的正确值。

【讨论】:

  • 谢谢,我写的时候没有意识到我没有添加新行。
【解决方案2】:

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

2) 将您想要的消息附加到它: ret.append(receiveString).append("\n");

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多