将相同的标记引用传递到SpannableString.setSpan将导致覆盖先前的范围

时间:2018-08-03 13:01:25

标签: android spannablestring

我正在建立一个实用的类来处理Spannables。但是使用相同的Markup object不起作用。

      Object span = new android.text.style.StyleSpan(android.graphics.Typeface.BOLD);

      SpannableString test = new SpannableString("Hello this is a test");     

   // This doesn't work. The last setSpan overwrites the first one
      test.setSpan(span,0,4,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
      test.setSpan(span,10,13,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

   // This works because it's a new reference 
      test.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD),0,4,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
      test.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD),10,13,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

反正我可以解决这个问题并使用相同的引用吗?也许改变旗帜?我已经查过了,但没有成功。

0 个答案:

没有答案