このコードを試して、「b」と「d」がまたがっている文字列「abcde」で TextView を作成しました。
private void testStringSpanning(TextView tv)
{
// blue
ForegroundColorSpan fcs = new ForegroundColorSpan( Color.BLUE );
SpannableString a = new SpannableString( "a" );
SpannableString b = new SpannableString( "b" );
b.setSpan( fcs, 0, 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE );
SpannableString c = new SpannableString( "c" );
SpannableString d = new SpannableString( "d" );
d.setSpan( fcs, 0, 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE );
SpannableString e = new SpannableString( "e" );
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append(a);
builder.append(b);
builder.append(c);
builder.append(d);
builder.append(e);
tv.setText( builder, BufferType.SPANNABLE);
}
結果は私が望むものではありません。a、c、e は無地の白、bd は青である必要があります。
私は何を間違っていますか?