Android 跨越 getSpanEnd() returns 错误的值
Android Spanned getSpanEnd() returns wrong value
我正在使用 Html.fromHtml
解析一些 html 字符串,然后遍历跨度,我希望找到每个跨度的开始和结束。我注意到对于 <a>
标签,getSpanEnd
returns 与开始的值相同。有谁知道我怎样才能得到正确的价值?感谢您提供任何线索。
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
returns 与 HtmlToSpannedConverter$Href
的 getSpanStart
的值相同。有谁知道为什么?
感谢您提供任何线索。
对于 Html.fromHtml
,<a>
元素不是 link (URLSpan
),除非它具有 href
属性。有效格式为 <a href="url">link text </a>
.
android.text.HtmlToSpannedConverter$Href 26 26
这里HtmlToSpannedConverter$Href只是标记对象,不是真正的Span。
我正在使用 Html.fromHtml
解析一些 html 字符串,然后遍历跨度,我希望找到每个跨度的开始和结束。我注意到对于 <a>
标签,getSpanEnd
returns 与开始的值相同。有谁知道我怎样才能得到正确的价值?感谢您提供任何线索。
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
returns 与 HtmlToSpannedConverter$Href
的 getSpanStart
的值相同。有谁知道为什么?
感谢您提供任何线索。
对于 Html.fromHtml
,<a>
元素不是 link (URLSpan
),除非它具有 href
属性。有效格式为 <a href="url">link text </a>
.
android.text.HtmlToSpannedConverter$Href 26 26
这里HtmlToSpannedConverter$Href只是标记对象,不是真正的Span。