1

我需要将文本推送到 WebView。但是这段文本中有很多不同的 HTML 标签,我想先解析一下。

Spanned html = Html.fromHtml(texts.get(i));

但我需要更改文本中的 URL 以在我的活动中调用一个函数。在 TextView 我可以这样做:

ClickableSpan[] items = spans.getSpans(0, spans.length(), ClickableSpan.class);
for (ClickableSpan s : items) {
    final String url = ((URLSpan)s).getURL();
    int spanStart = spans.getSpanStart(s);
    int spanEnd = spans.getSpanEnd(s);
    spans.removeSpan(s);
    spans.setSpan(new URLSpan(url) {
        @Override
        public void onClick(View widget) {
            //code for overriding onClick goes here            
        }
    }, spanStart, spanEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}

是否可以使用 Html.fromHTML() AND 更改文本中的链接以在使用 WebView 而不是 TextView 时调用我的函数?

4

1 回答 1

0

不是真的,因为WebView理解 HTML,而不是Spanned. 欢迎您尝试通过 将Spanned返回的内容转换为 HTML Html.toHtml(),但是从 HTML 到 HTML 的往返转换Spanned可能会对任何复杂的格式进行哈希处理,因为它们不是完整的 HTML 解析器或生成器。

我建议您找到并使用一些旨在解析和帮助您修复 HTML 的 Java 库。

于 2012-09-10T14:41:37.973 回答