我想了解tagHandler的工作原理。让我说我在html中有一个标签,我想要覆盖它的功能。我的意思是它预计会增加一条新线。但是让我说我想要它而不是打印文本。所以这就是我的尝试:
public class MyTagHandler implements Html.TagHandler {
@Override
public void handleTag(boolean opening, String tag, Editable output,
XMLReader xmlReader) {
if(tag.equals("br")) && !opening) output.append("hello world");
}
}
然后我这样运行:
Html.fromHtml(myHTMLString,null,new MyTagHandler());
似乎没问题,但我不想让它打印出新的一行。我想实际覆盖标签的作用。所以它应该只打印"你好世界"没有其他的。这可能吗 ?
答案 0 :(得分:0)
我发现了如何做到这一点。我必须重命名为自定义标签。这样:
myHTML.replaceAll( “”, “”)的replaceAll( “
”, “”);
然后在我的处理程序中,我可以找到那个customTag(什么都不做)并让它做点什么。
public class UlTagHandler implements Html.TagHandler {
//for ul in nougat and up this tagHandler is completely ignored
@Override
public void handleTag(boolean opening, String tag, Editable output,
XMLReader xmlReader) {
if (tag.equals("customtag") && opening)
output.append("do whatever you want");
if (tag.equals("customtag") && !opening)
output.append("closed tag, do whatever you want");
}
}