Html.fromHtml 中的换行符被忽略
Linebreaks are ignored in Html.fromHtml
我从 API 收到带有换行符的文本,但我无法使用换行符。
这是我要显示的部分文字。 http://pastebin.com/CLnq16mP(粘贴到那里是因为 Whosebug 上的格式不正确。)
我试过这个:
termsAndConditionsTextView.setText(Html.fromHtml("<html><body>" + textResponse.getText() + "</body></html>"));
还有这个:
termsAndConditionsTextView.setText(Html.fromHtml(textResponse.getText()));
但换行符 (\r\n) 和空格总是被忽略。
我该如何解决这个问题?
因为 html 尝试使用
</br>
您可以通过执行以下操作来替换文本中的所有 \r\n 和空格:
//message is your string.
message = message.replace("\r\n","<br />");
message = message.replace(" "," ");
termsAndConditionsTextView.setText(Html.fromHtml(message));
祝你好运!
由于文本已预先格式化,即使有缩进,您也可以使用 <pre>
标签。
<pre>
your text.
</pre>
但是换行符显然是在哪里转义的:\r\n
所以你仍然需要转换:
message = message.replace("\r\n", "\r\n");
\/
也是如此。
如果你想引入粗体、超链接等,那么 <pre>
标签会失败,因为它只能包含预格式化的原样文本,
我从 API 收到带有换行符的文本,但我无法使用换行符。
这是我要显示的部分文字。 http://pastebin.com/CLnq16mP(粘贴到那里是因为 Whosebug 上的格式不正确。)
我试过这个:
termsAndConditionsTextView.setText(Html.fromHtml("<html><body>" + textResponse.getText() + "</body></html>"));
还有这个:
termsAndConditionsTextView.setText(Html.fromHtml(textResponse.getText()));
但换行符 (\r\n) 和空格总是被忽略。
我该如何解决这个问题?
因为 html 尝试使用
</br>
您可以通过执行以下操作来替换文本中的所有 \r\n 和空格:
//message is your string.
message = message.replace("\r\n","<br />");
message = message.replace(" "," ");
termsAndConditionsTextView.setText(Html.fromHtml(message));
祝你好运!
由于文本已预先格式化,即使有缩进,您也可以使用 <pre>
标签。
<pre>
your text.
</pre>
但是换行符显然是在哪里转义的:\r\n
所以你仍然需要转换:
message = message.replace("\r\n", "\r\n");
\/
也是如此。
如果你想引入粗体、超链接等,那么 <pre>
标签会失败,因为它只能包含预格式化的原样文本,