3

I am trying to get a string in a TextView which should look like this:

BOLD not bold BOLD not bold

I have tried this code:

val builder = SpannableStringBuilder()
val boldSpan = StyleSpan(Typeface.BOLD)
val spanFlag = Spannable.SPAN_EXCLUSIVE_EXCLUSIVE

builder.append("BOLD ", boldSpan, spanFlag)
builder.append("not bold ")
builder.append("BOLD ", boldSpan, spanFlag)
builder.append("not bold ")

return builder

The problem is it's only bolding the last part. Result looks like this:

BOLD not bold BOLD not bold

Is there any way to bold multiple parts using a SpannableStringBuilder?

Jordy
  • 121
  • 2
  • 13

1 Answers1

4

Use two different spans:

val builder = SpannableStringBuilder()
val spanFlag = Spannable.SPAN_EXCLUSIVE_EXCLUSIVE

builder.append("BOLD ", StyleSpan(Typeface.BOLD), spanFlag)
builder.append("not bold ")
builder.append("BOLD ", StyleSpan(Typeface.BOLD), spanFlag)
builder.append("not bold ")

return builder
CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491