1

假设我有SpannableString一个 URLSpan 设置为跨度,如下所示:

SpannableString ss = new SpannableString(text);
ss.setSpan(new URLSpan("com://my.app"), 3, 6,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

然后我为该跨度设置了另一个 URLSpan。但是第二个 URLSpan 不起作用,第一个起作用。我不能使用ss.removeSpan(what);,因为我不想删除所有 URLSpan。我该如何解决这个问题?

4

1 回答 1

1

getSpans()在特定的跨度(我想为其重置)中使用它来获取它的跨度,然后我用removeSpan它来删除它:

SpannableString ss = new SpannableString(text);
ss.setSpan(new URLSpan("com://my.app"), 3, 6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
URLSpan[] toRemoveSpans = ss.getSpans(3, 6, URLSpan.class);
ss.removeSpan(toRemoveSpans[0]);   
ss.setSpan(new MyURLSpan("com://my.app"), 3, 6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
于 2013-11-09T12:09:54.420 回答