2013-11-09 1 views
1

Скажем, у меня есть SpannableString что URLSpan устанавливается на пролете в нем, как это:Android, setSpan дважды?

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

Тогда я установил еще один URLSpan для этого span.But второй URLSpan не работает, и первый один works.I не может использовать ss.removeSpan(what);, потому что я не хочу удалять все URL-адреса. Как я могу решить эту проблему?

+0

вы используете одни и те же объекты пролетных дважды? – pskink

+0

@pskink Нет, я использую другой. – hasanghaforian

+0

rhen отправить полный код, как вы установили эти промежутки – pskink

ответ

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