繁体   English   中英

Android 跨接 getSpanEnd() 返回错误值

[英]Android Spanned getSpanEnd() returns wrong value

我正在使用Html.fromHtml解析一些 html 字符串,然后遍历跨度,我正在寻找每个跨度的开始和结束。 我注意到对于<a>标记, getSpanEnd返回与 start 相同的值。 有谁知道我怎样才能获得正确的价值? 感谢您提供任何线索。

val spannedHtml = Html.fromHtml("The <b>quick</b> <span style='color:#a52a2a;'>brown</span> <i>fox</i> jumps <a>over</a> <u>the</u> <a>lazy dog</a>.", Html.FROM_HTML_MODE_LEGACY)
val spans: Array<Any> = spannedHtml.getSpans(0, spannedHtml.length - 1, Any::class.java)
spans.forEach { span ->
    val start = spannedHtml.getSpanStart(span)
    val end = spannedHtml.getSpanEnd(span)
    Log.d("span", "${span.javaClass.name} $start $end")
}

这是结果:

android.text.style.StyleSpan 4 9
android.text.style.ForegroundColorSpan 10 15
android.text.style.StyleSpan 16 19
android.text.HtmlToSpannedConverter$Href 26 26
android.text.style.UnderlineSpan 31 34
android.text.HtmlToSpannedConverter$Href 35 35

如您所见, getSpanEnd返回与HtmlToSpannedConverter$Href getSpanStart的 getSpanStart 相同的值。 有谁知道为什么? 感谢您提供任何线索。

对于Html.fromHtml<a>元素不是链接 ( URLSpan ),除非它具有href属性。 有效的形式是<a href="url">link text </a>

android.text.HtmlToSpannedConverter$Href 26 26

这里HtmlToSpannedConverter $ Href只是标记 object,而不是真正的 Span。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM