【问题标题】:How can I read breaks in downloaded text?如何阅读下载文本中的中断?
【发布时间】:2012-02-05 02:36:45
【问题描述】:

我正在使用 API 的“Downloads”部分中列出的 Last.fm Java 库。当我调用“getWikiText()”并将其设置为我的 TextView 时,将返回所有数据;但是,html 的格式不正确。数据不是显示单独的段落,而是显示为一个大文本。为了说明我的意思,这里有一张返回的图片,然后是一个指向艺术家页面的链接。

图片-http://i.imgur.com/ameTO.jpg

事情应该是什么样子 - http://www.last.fm/music/Bon+Iver

这就是我要获取艺术家信息的方法,但我在段落间距方面缺少什么?我已经搜索了很多,但没有太多关于这方面的信息。我现在基本上是在黑暗中拍摄,所以我需要一点帮助。

artistInfo = Artist.getInfo("Bon Iver",key);
artistText = artistInfo.getWikiText();
info.setText("");
info.append(Html.fromHtml((artistText)));

【问题讨论】:

  • 它们是否为您提供了任何类型的行分隔符(回车符或换行符)还是只是纯文本和空格?
  • 我不知道。该库正在帮助我解析您从 Last.fm 检索到的 XML。 Here's an example of the XML being parsed.(滚动到底部并查看“内容”标签。)今天早上我尝试从内容标签创建一个字符串,我只是粘贴了所有内容,但我最终得到了相同的结果。我知道数据可以像我想要的那样返回,我已经看到它完成了。我不确定我现在缺少什么。
  • 该 XML 中有回车符和换行符。看起来它们在段落的适当位置。
  • 那么,您知道捕获它们的方法吗?我的印象是使用Html.fromHtml() 会自然地识别它们并相应地分隔事物,但似乎需要更多的东西。
  • 好吧,我会用 StringTokenizer 来做 - 我相信使用 "\r\n" 会匹配。如果您使用的是 Android 库,也许存在更好的方法。我不太确定。

标签: java android html last.fm


【解决方案1】:

打一个简单的replaceAll() 电话就够了:

String artistText = artistInfo.getWikiText();
artistText = artistText.replaceAll("\n", "<br />");
info.setText(Html.fromHtml(artistText));

【讨论】:

  • 我打电话给artistInfo.getWikiText().replaceAll("\n", "&lt;br /&gt;");,内容还是一样。我还在Html.fromHtml()setText() 中调用了它,仍然没有变化。我也试过你编辑的,还是没有。实际内容保持不变。文末的知识共享许可已被破坏。
  • 看看我给你的附件代码replaceAll()。我已经测试过了,它有效!
  • 对,我做到了。我已经完全按照您的演示使用它,但结果仍然相同。
  • 不要做info.append()。做info.setText(Html.fromHtml(artistText));
  • 好的,我看到屏幕截图了。奇怪的是我的没有改变。然后我将不得不尝试看看是什么让我的应用与您的测试应用不同。
猜你喜欢
  • 2014-05-24
  • 2017-06-01
  • 2018-09-06
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
相关资源
最近更新 更多