【问题标题】:Android - Achieving line break in XML string with String.format()?Android - 使用 String.format() 在 XML 字符串中实现换行?
【发布时间】:2015-02-26 14:51:04
【问题描述】:

这是我的 xml 字符串...

<string name="my_string">First line.\nSecond line: %1$s.\nThird line.</string>

...我需要在不丢失换行符的情况下运行 String.format。

我如何做到这一点?

这是我的 Java 代码...

String text = String.format(getString(R.string.my_string, "some text");
Spanned html = Html.fromHtml(text, this, null);
textView.setText(html);

在 xml 文件中,我尝试使用 \n&lt;br /&gt; 以及实际的新行,但它们都不会在 UI 上的 textView 中产生换行符。

【问题讨论】:

  • \n 有什么问题?在我的情况下,这是完美的工作。我用了这个字符串First line. \n Second line: %1$s.\n Third line.
  • 如果你想将字符串加载为 Html,那么你必须使用
    而不是 \n 并将 ' 中像:<br/>.
  • \n 当我将它与 String.format(String1, String2) 一起使用时为我工作

标签: java android xml newline string-formatting


【解决方案1】:

对 HTML 字符串试试这个:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Hello&lt;br /&gt;World!</string>
</resources>

【讨论】:

  • 不需要 >用于结束 HTML 转义字符串只需要 <.
【解决方案2】:

为了使用&lt;br /&gt;,作为一个html标签,你必须将字符串包装在CDATA中。 使用这个。

<string name="my_string"><![CDATA][First line. <br />Second line. <br />Third line.]]</string>

【讨论】:

    【解决方案3】:
    Try to replace '<' with &lt; in HTML-escaped string :
    
    <string name="my_string">First line.&lt;br/>Second line: %1$s.&lt;br/>Third line.</string>
    

    更多详情请查看:http://developer.android.com/guide/topics/resources/string-resource.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-03
      • 2017-06-09
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      相关资源
      最近更新 更多