我从 EditText 框中获取跨区文本,并使用 HTML.toHtml 将其转换为 HTML 标记字符串。这工作正常。我已验证该字符串是正确的并且包含 <br>
在适当的位置。但是,当我必须将标记字符串转换回跨区文本以使用 HTML.fromHtml 填充 TextView 或 EditText 时,<br>
(或多个,如果它们存在)在第一段的末尾消失。这意味着如果用户输入带有多个换行符的文本并希望保留该格式,它就会丢失。
我附上了一张图片来帮助说明这一点。第一个 EditText 是用户输入,它下面的 TextView 是它上面的 EditText 的 HTML.tohtml 结果,它下面的 EditText 使用 HTML.fromHtml 使用它上面的 TextView 中的字符串填充。如您所见,换行符已消失,多余的行也已消失。此外,当第二个编辑文本的跨区文本通过 HTML.toHtml 运行时,它现在会生成一个不同的 HTML 标记字符串。
我希望能够从第一个 EditText 中获取带有 HTML 标记的字符串并填充其他 TextViews 或 EditTexts 而不会丢失换行符和格式。
最佳答案
我也遇到了这个问题,我找不到简单的“转换”或类似的解决方案。注意一些重要的事情,当用户按下“回车”时,java 会产生特殊字符 \n
但在 HTML 中没有这样的换行格式。它是 <br />
.
所以我所做的是替换一些特定的CharSequence
s,从纯文本,由替代的 HTML 格式。就我而言,只有“输入”字符,所以没有那么困惑。
关于android - HTML.fromHtml 换行符消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11625330/