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

时间:2015-08-25 11:39:00

标签: java android android-edittext spannablestring

我正在尝试将All Spans应用于文本,如下所示;

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 "";
}

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

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:1)

如果您要查找跨度开始/结束索引,则可以使用此(例如单个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) 的示例)-

{{1}}