You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio Kotlin:TextView部分文本<font>标签变色无效求助

解决TextView中HTML标签不生效的问题

你的问题出在TextView默认会把字符串当作纯文本渲染,不会自动解析HTML标签,所以<font>标签被直接显示出来,没有起到变色作用。按以下步骤修改即可解决:

1. 规范HTML字符串格式(可选但推荐)

把color属性值用双引号包裹,避免解析异常:

var text = "Take <font color=\"red\">(" + medpill + ")</font> pill every "

2. 在设置TextView文本时解析HTML

不要直接把字符串赋值给TextView,而是用Html类解析后再设置。根据Android版本做兼容:

假设你原本的代码是这样设置文本的:

textView.text = medication.text

修改为:

val htmlContent = medication.text
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    textView.text = Html.fromHtml(htmlContent, Html.FROM_HTML_MODE_LEGACY)
} else {
    textView.text = Html.fromHtml(htmlContent)
}

如果使用DataBinding,可以在布局里直接写表达式处理:

<TextView
    ...
    android:text="@{Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? Html.fromHtml(medication.text, Html.FROM_HTML_MODE_LEGACY) : Html.fromHtml(medication.text)}" />

补充说明

  • 数据层尽量保持原始的HTML字符串,把渲染逻辑放在展示层(比如Adapter或Activity/Fragment),这样更符合分层设计。
  • Android的Html类只支持有限的HTML标签,如果需要更复杂的样式,可以考虑使用SpannableString实现。

内容的提问来源于stack exchange,提问作者Robert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 08:15:12