Android TagHandler对标准标记没有影响

Android TagHandler对标准标记没有影响,android,textview,Android,Textview,我正在使用TextView显示HTML字符串,例如: “测试HTMLlink1link2” 如您所见,我需要处理两种不同类型的标记,因此我需要能够处理这两种不同类型的标记并读取href属性 我尝试使用Html.TagHandler: private class MyTagHandler implements Html.TagHandler { @Override public void handleTag(boolean opening, String tag, Editable

我正在使用TextView显示HTML字符串,例如:

“测试HTMLlink1link2

如您所见,我需要处理两种不同类型的标记,因此我需要能够处理这两种不同类型的标记并读取href属性

我尝试使用Html.TagHandler:

private class MyTagHandler implements Html.TagHandler {
    @Override
    public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) {
        Toast.makeText(getContext(), tag, Toast.LENGTH_LONG).show();
    }
}

但是,标记上不调用handleTag。我做了测试,发现它只对定制标签有影响。是否也可以处理标准标记?

Html.TagHandler自定义实现的目标是提供对android框架无法处理的标记的处理。因此,为了做您想要做的事情,一个解决方法是将您想要处理的所有标记替换为另一个您知道框架不会处理的标记,这样它将进入您的实现。例如,您可以使用以下方法来准备html:

public string prepareHTMLForTagHandling(string htmlSource)
    {
        if (htmlSource == null || htmlSource == "")
            return null;

        return htmlSource.replace("<a", "<acustomlink")
                         .replace("</a>", "<acustomlink>");
    }
最后,在自定义标记处理程序实现中,将“acustomlink”作为标记处理,而不是“a”


希望有帮助。

我也遇到了类似的问题。它也没有检测到。
Html.fromHtml(prepareHTMLForTagHandling(myHtml), null, myHtmlCustomTagHandler);