这与之前提出的问题相关here.致电replaceAll("\n", "<br />")
然后Html.fromHtml()
将正确格式化冰淇淋三明治前的文字;但是,正如您在photo中看到的那样,它在ICS中不起作用。我已经尝试了至少三十种不同的方法来捕捉和替换文本中的换行符,但我空手而归。有什么东西特别需要在ICS中调用,这是一个bug,还有其他人遇到过这个问题吗?任何人都可以想到一个解决方案,因为必须有一个。此外,任何人都可以提供一些有关为什么会发生这种情况的见解?这非常奇特。
要明确:我已在Froyo and Gingerbread上对此进行了测试,并且文本格式正确。在冰淇淋三明治中,它没有。
以下是Last.fm返回的文本示例。滚动到底部,它从“内容”开始。 Bon Iver URL
如果您有兴趣亲自测试它,这是一个演示应用程序。 http://dl.dropbox.com/u/2301775/lastfm-api-test.zip
以下两个屏幕截图说明了我的意思。他们来自测试应用程序。第一个运行姜饼和第二个运行冰淇淋三明治。
答案 0 :(得分:2)
(删除了旧条目......测试了测试项目)
有一个非常有趣的“问题”,但我不确定由谁负责。
我测试了你的应用并让它运行起来。
我正在寻找一个2.2设备,其中第一个\n
出现在字符串中(索引413),而不是我在ICS版本看了这个索引。在那里,我只能找到\r
。
你也可以看到LogCat的不同之处。在ICS上你看到没有意义的乱序文本但在ICS下面你可以毫无问题地阅读完整的文本。
因此,您应该替换\n
,而不是将<br/>
替换为\r
。我只是为了确保按此顺序替换:
\n\r
\n
\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));