Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将HTML项目符号转换为纯文本_Java_Android_Html_Html Parsing - Fatal编程技术网

Java 将HTML项目符号转换为纯文本

Java 将HTML项目符号转换为纯文本,java,android,html,html-parsing,Java,Android,Html,Html Parsing,我正在为android创建一个应用程序,它所做的一件事就是在服务器上获取现有的Html,并使用TextView向用户显示它。大多数Html标记都很好(例如粗体),但在使用Html.fromHtml(txt) 我注意到android文档中存在一个。然而,对于如何正确使用它,绝对没有任何解释 BulletSpan真的会帮助我吗?我该如何使用它呢 最后,如果这对我没有帮助,我如何在Java中更改所有列表,使其前面有星号(就像markdown那样) 请不要回答使用webview。查看android.te

我正在为android创建一个应用程序,它所做的一件事就是在服务器上获取现有的Html,并使用TextView向用户显示它。大多数Html标记都很好(例如粗体),但在使用
Html.fromHtml(txt)

我注意到android文档中存在一个。然而,对于如何正确使用它,绝对没有任何解释

BulletSpan真的会帮助我吗?我该如何使用它呢

最后,如果这对我没有帮助,我如何在Java中更改所有列表,使其前面有星号(就像markdown那样)


请不要回答使用webview。

查看
android.text.Html
(可在上找到)的源代码,以下标记似乎由
从Html(字符串)
转换而来

  • br,p,div,em,b,strong,cite,dfn,i,big,small,font,blockquote,tt,a,u,sup,sub,h1,h2,h3,h4,h5,h6,img
其中一些标记具有转换的附加属性。例如,将转换字体颜色属性的以下值

  • 水蓝、黑色、蓝色、紫红色、绿色、灰色、青柠色、栗色、海军蓝、橄榄色、紫色、红色、银色、青色、白色、黄色
不幸的是,我还没有找到记录这些信息的地方

要转换额外的标记,例如ul和li,您需要提供适当的实现,为此将出现


希望这是关于如何处理翻译的足够信息。无论是否使用
BulletSpan
,我都不能提供任何建议,因为我不知道我曾经见过一个在运行中,并且没有找到匹配项。在非公共类的内部,
android.content.res.StringBlock
BulletSpan
用于表示列表项。因此,它的使用看起来很有希望。

我一直在努力克服Html.fromHtml()提供给您的有限控制,最后我放弃了

我已经在使用HtmlCleaner清理Html,然后再将其提供给Html.fromHtml(),我刚刚实现了一个直接转换为一个span。通过这种方式,我可以完全控制元素的呈现方式,尽管我确实从原始Html类复制了很多内容

HtmlCleaner将Html解析为TagNode对象树,我实现了一个CleanHtmlParser.fromTageNode()方法。在这里:


BulletSpan给了我一些混合的结果,因为它渲染行左侧的项目符号,然后缩进文本,而不是同时缩进文本和项目符号。我只是将它们包装在页边空白处,并在文本前面打印一个unicode项目符号字符。

您需要在HTML上使用HtmlCleaner吗?Html.fromHtml()已经在使用TagSoup来处理“脏”Html了,所以看起来您的Html将被处理两次。到目前为止,它已经演变成一个单独的项目,可以替代Html.fromHtml():您的库看起来很不错。我迫不及待地想用它。