奇怪的 TagHandler 行为检测开始和结束标签

编程入门 行业动态 更新时间:2024-10-15 20:24:59
本文介绍了奇怪的 TagHandler 行为检测开始和结束标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我正在尝试使用 TextView 显示带有自定义标签的字符串文本:

I am trying to use TextView to display a String text with custom tags:

字符串:

"<articlelink>text1</articlelink> padding<articlelink>text2</articlelink>"

其中 articlelink 是自定义标签.我使用自定义的 HTML.TagHandler 来处理标签:

Where articlelink is a custom tag. I use a customized HTML.TagHandler to handle the tags:

private class MyTagHandler implements Html.TagHandler {

    private int startIndex = 0;
    private int endIndex = 0;

    @Override
    public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) {
        if (tag.equals("articlelink")) {
            if (opening) {
                startIndex = output.length();
                DebugLog.d("OPEN " + startIndex);
            } else {
                endIndex = output.length();
                DebugLog.d("END " + endIndex);
                MyClickableSpan span = new MyClickableSpan();
                output.setSpan(span, startIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            }
        }
    }
}

但是日志是:

OPEN 0
OPEN 13
END 18
END 18

但是,在字符串之前插入一个字符后,输出就是我所期望的:

However, after I insert a character before the string then the output is what I expected:

字符串:

"a<articlelink>text1</articlelink> padding<articlelink>text2</articlelink>"

输出:

OPEN 1
END 6
OPEN 14
END 19

这里发生了什么?这是一个错误还是我误用了它?

What happened here? Is this a bug or I misused it?

推荐答案

我通过在字符串开头添加zero width joiner"解决了这个问题

I solved this problem by adding to the beginning of the string "zero width joiner"

字符串看起来像:

"&zwj;<articlelink>text1</articlelink>padding<articlelink>text2</articlelink>"

在结果文本视图中,该符号不可见,文本看起来像原始字符串

In result textview, this symbol is not visible and text looks like the original string

这篇关于奇怪的 TagHandler 行为检测开始和结束标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-04-30 19:20:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1399428.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:奇怪   结束   标签   TagHandler

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!