TextViewを使っている時に複数の文字列を太字にする場合は下記のような拡張関数を書いておくと便利です。

import android.graphics.Typeface
import android.text.Spannable
import android.text.SpannableStringBuilder
import android.widget.TextView
import android.text.style.StyleSpan

fun TextView.addBold(boldText: String) {
    val builder = SpannableStringBuilder(text)
    text.forEachIndexed { index, _ ->
        val startIndex = text.indexOf(boldText, index)
        if (startIndex < 0) return@forEachIndexed
        val endIndex = startIndex + boldText.length
        builder.setSpan(StyleSpan(Typeface.BOLD), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
    }
    text = builder
}

TextViewに「あいう かきく あいう」という文字列を設定しておいてtextView.addBold(“あいう”)を実行すると下記のようになります。

Typeface.BOLDの部分をTypeface.ITALICにすると斜体になります。StyleSpan(Typeface.BOLD)の部分をBackgroundColorSpan(Color.RED)にすると背景が赤くなります。

注意点としては下記のようにspanを一度インスタンス化してから使うと1箇所しか装飾されないので都度spanインスタンスを作成しましょう。

fun TextView.addBold(boldText: String) {
    val builder = SpannableStringBuilder(text)
    val span = StyleSpan(Typeface.BOLD)
    text.forEachIndexed { index, _ ->
        val startIndex = text.indexOf(boldText, index)
        if (startIndex < 0) return@forEachIndexed
        val endIndex = startIndex + boldText.length
        // spanインスタンスを使い回すと複数箇所の装飾ができない
        builder.setSpan(span, startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
    }
    text = builder
}