Android,setSpan两次?

时间:2013-11-09 11:15:02

标签: android spannablestring

假设我有一个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>

1 个答案:

答案 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);