查找 EditText 可编辑的 getSpans 开始和结束索引

Finding EditText Editable getSpans Start and End Index

我正在尝试将所有跨度应用于文本,如下所示;

public String getTextWithTags(Editable e)
{

    StyleSpan[] ss = e.getSpans(0,e.length(),StyleSpan.class);
    ss[0].getSpanStart <--- ? This is the problem, no such function

    return "";
}

但是没有索引查找功能来替换标签以将它们存储在数据库中,因此当我重新打开文本时我可以检索所有跨度。如何从可编辑对象中获取所有跨度位置?

StyleSpan[] ss = e.getSpans(0,e.length(),StyleSpan.class);

for(StyleSpan span : ss){
    int start = e.getSpanStart(span);
    int end = e.getSpanEnd(span);
}

如果你想找到 Span start/end 索引,你可以使用这个(单个 RelativeSizeSpan 的例子)-

val sb = text as SpannableStringBuilder
val firstSpan = getSpans(0, length, RelativeSizeSpan::class.java).first()
val start = (sb as Spanned).getSpanStart(firstSpan)
val end = (sb as Spanned).getSpanEnd(firstSpan)