gpt4 book ai didi

java - Ice Cream Sandwich 无法识别 HTML 中的换行符

转载 作者:太空狗 更新时间:2023-10-29 13:37:24 26 4
gpt4 key购买 nike

这与我之前提出的问题有关 here.打电话replaceAll("\n", "<br />")然后 Html.fromHtml()将正确格式化 Ice Cream Sandwich 前的文本;但是,正如您从 photo 中看到的那样它在 ICS 中不起作用。我已经尝试了至少三十种不同的方法来捕获和替换文本中的换行符,但我空手而归。我需要在 ICS 中调用什么特别的东西吗,这是一个错误吗,有没有其他人遇到过这个问题?任何人都可以想到解决方法,因为必须有一个。另外,任何人都可以提供一些关于为什么会发生这种情况的见解吗?这很奇特。

需要说明的是:我已经在 Froyo and Gingerbread 上对此进行了测试并且文本格式正确。在 Ice Cream Sandwich 中,情况并非如此。

这是从 Last.fm 返回的文本示例。滚动到底部,它从“内容”开始。 Bon Iver URL

如果您有兴趣亲身测试,这里有一个演示应用程序。 http://dl.dropbox.com/u/2301775/lastfm-api-test.zip

这里有两张截图来说明我的意思。它们来自测试应用程序。第一个运行的 Gingerbread 和第二个运行的 Ice Cream Sandwich 。

Gingerbread screenshot

Ice Cream Sandwich screenshot

最佳答案

(删除旧条目...测试测试项目)

有一个非常有趣的“问题”,但我不确定谁对此负责。

我测试了您的应用并使其正常运行。我在看 2.2 设备,其中第一个 \n出现在字符串中(索引 413),然后我在 ICS 版本中查看了这个索引。在那里我只能找到 \r .

您也可以在 LogCat 中看到差异。在 ICS 上,您会看到毫无意义的乱序文本,但在 ICS 下方,您可以毫无问题地阅读完整文本。

所以不用替换 \n<br/>你应该替换 \r , 也。我会,只是为了确保,按此顺序替换:

  1. \n\r
  2. \n
  3. \r

第 1 步很重要,可以消除这种可能性,如果有人使用 \n\r,您会“加倍”休息...

使用的工作代码:

String artistText = artistInfo.getWikiText();
Log.i("Log", artistText);
artistText = artistText.replaceAll("\n\r", "<br />");
artistText = artistText.replaceAll("\n", "<br />");
artistText = artistText.replaceAll("\r", "<br />");
System.out.println(artistText);
txtWiki.setText(Html.fromHtml(artistText));

关于java - Ice Cream Sandwich 无法识别 HTML 中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9174828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com