假设我有一个SpannableString
,其中的spanSpath设置如下:
SpannableString ss = new SpannableString(text);
ss.setSpan(new URLSpan("com://my.app"), 3, 6,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
然后我为该span设置了另一个URLSpan。但是第二个URLSpan不起作用,第一个工作。我不能使用ss.removeSpan(what);
,因为我不想删除所有的URLSpans。我怎么能解决这个问题?< / p>
答案 0 :(得分: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);