您好,我有此扩展程序,可以将样式应用于目标单词,但是如果由于某种原因我发送多个单词,我在示例项目中进行了测试,效果很好。.任何人都可以提供帮助我吧。
fun String.applySpans(vararg pairs: Pair<String, Any> ): Spannable {
val spannable = SpannableStringBuilder(this)
pairs.forEach {
val start = this.indexOf(it.first)
val end = start + it.first.length
spannable.setSpan(it.second, start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE)
}
return spannable
}
这是测试样本中的工作版本
val bold = StyleSpan(Typeface.BOLD)
val italic = StyleSpan(Typeface.BOLD_ITALIC)
val string = getString(R.string.hello_message, "John", "Wick")
testTextView.text = string.applySpans(mapOf(
"John" to bold,
"Wick" to italic
)
)
这是有问题的代码
val message = getString(R.string.not_delivery_to_this_area, searchError.restaurant, searchError.area)
searchErrorView.errorMessage.text = message.applySpans(
searchError.restaurant to bold,
searchError.area to bold
)