【问题标题】:Add new line `\n' on TextView won't work在 TextView 上添加新行 `\n' 将不起作用
【发布时间】:2012-03-24 14:20:42
【问题描述】:

我不知道为什么它不起作用。我的TextView 已经设置了lines=6。字符串在代码中设置,如下所示:

address.setText((String) bundle.get("address"));

以上代码仍将\n 显示为字符串而不是新行。 bundle.get("address") 是从.dat 中检索到的,这是asset 中的“line1\nline2”文件存储但是当我尝试这个时:

address.setText("line1\nline2");

这段代码运行良好。

知道这里出了什么问题吗?提前致谢

【问题讨论】:

  • 您可能还希望显示您的代码也在读取 .dat 文件。
  • 读取文件没有问题,显示内容,但不会显示\n换行,仅此而已。

标签: android textview newline


【解决方案1】:

为什么不尝试为 . 请将资产文件中的 \n 替换为 \\n,看看现在是否正确显示?

【讨论】:

    【解决方案2】:

    您的 .dat 文件中可能有斜线编码。确保它实际上是一个换行符。

    【讨论】:

    • 我不太明白你的意思。它显示:line1\nline2 但按原样显示,没有分隔线
    • 我的意思是,如果在你的 .dat 文件中你的字面意思是:line1\nline2,那么就会出现这样的结果(斜线然后是 n)。 \n 是 Java(和其他一些语言)中表示换行符的特殊约定。请参阅this question 了解更多信息。
    【解决方案3】:

    这并不是我真正要寻找的答案,但我设法将String(从文本文件中读取)中的\n 替换为代码中的\n。这是我的解决方案。

    String seperator = "\n";  
    String []tempText = a.split(seperator);
    
    if (a.contains(seperator)){
            String b= "";
            for (String c : tempText)
                b +=c+"\n";
            b= b.substring(0, b.length()-2);
            address.setText(b);
    
        }else{
            address.setText((String) bundle.get("address"));
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 2017-11-28
      相关资源
      最近更新 更多