Android String处理(SpannableString,HTML)

来源:互联网 发布:医药冷链物流数据 编辑:程序博客网 时间:2024/06/01 08:28

SpannableString:

SpannableString在strings.xml对应关系(StringBlock.java)

  • Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含两端start和end所在的端点
  • Spanned.SPAN_EXCLUSIVE_INCLUSIVE --- 不包含start,但包含end
  • Spanned.SPAN_INCLUSIVE_EXCLUSIVE --- 包含start,但不包含end
  • Spanned.SPAN_INCLUSIVE_INCLUSIVE--- 包含start和end所在的端点

   public void testSetSpan() {        String text = "hello, world";        SpannableString spannable = new SpannableString(text);        spannable.setSpan(null, 1, 4, SpannableString.SPAN_POINT_POINT);        assertEquals(1, spannable.getSpanStart(null));        assertEquals(4, spannable.getSpanEnd(null));        assertEquals(SpannableString.SPAN_POINT_POINT, spannable.getSpanFlags(null));        UnderlineSpan underlineSpan = new UnderlineSpan();        spannable.setSpan(underlineSpan, 0, 2, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);        assertEquals(0, spannable.getSpanStart(underlineSpan));        assertEquals(2, spannable.getSpanEnd(underlineSpan));        assertEquals(SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE,                spannable.getSpanFlags(underlineSpan));        try {            spannable.setSpan(null, 4, 1, SpannableString.SPAN_POINT_POINT);            fail("should throw IndexOutOfBoundsException here");        } catch (IndexOutOfBoundsException e) {        }        try {            spannable.setSpan(underlineSpan, -1, text.length() + 1,                    SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);            fail("should throw IndexOutOfBoundsException here");        } catch (IndexOutOfBoundsException e) {        }    }
    
   public void testRemoveSpan() {        SpannableString spannable = new SpannableString("hello, world");        spannable.removeSpan(null);        UnderlineSpan underlineSpan = new UnderlineSpan();        spannable.setSpan(underlineSpan, 0, 2, 2);        assertEquals(0, spannable.getSpanStart(underlineSpan));        assertEquals(2, spannable.getSpanEnd(underlineSpan));        assertEquals(2, spannable.getSpanFlags(underlineSpan));        spannable.removeSpan(underlineSpan);        assertEquals(-1, spannable.getSpanStart(underlineSpan));        assertEquals(-1, spannable.getSpanEnd(underlineSpan));        assertEquals(0, spannable.getSpanFlags(underlineSpan));        // try to test removeSpan when there are no spans        spannable.removeSpan(underlineSpan);        assertEquals(-1, spannable.getSpanStart(underlineSpan));        assertEquals(-1, spannable.getSpanEnd(underlineSpan));        assertEquals(0, spannable.getSpanFlags(underlineSpan));    }



HTML:

TextView textView = new TextView(context);        textView.setText(Html.fromHtml("<b>some</b> html text"));

0 0
原创粉丝点击