android - 为什么HtmlCompat.fromHtml()没有设置文本样式?

标签 android xml string kotlin

我正在尝试设置String的样式,然后再将其设置为TextView。但是,当我运行该应用程序时,没有样式应用于文本。

我已经在strings.xml中将字符串资源定义为

<string name="amount_added_notice"> <![CDATA[Amount of <b><font color=\'#333333\'>\u20B9%1$s</font></b> added to %2$s Account]]> </string>

XML中,我正在使用DataBinding设置文本
android:text="@{viewModel.firstText}"
firstText变量在ViewModel中定义为
val firstText by lazy { ObservableField<String>() }

然后按以下方式分配string
firstText.set(  HtmlCompat.fromHtml(context.getString(R.string.amount_added_notice, "500", "John's"), FROM_HTML_MODE_LEGACY)))

我究竟做错了什么?

最佳答案

val firstText by lazy { ObservableField<String>() }

尝试将其更改为:
val firstText by lazy { ObservableField<CharSequence>() }

看看是否有帮助。 HtmlCompat.fromHtml()的输出是CharSequence,特别是某种包含格式设置规则的Spannable。我的猜测是它正在下转换为普通的String

关于android - 为什么HtmlCompat.fromHtml()没有设置文本样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60785937/

相关文章:

android - 如何编辑现有的 Android 应用程序,使应用程序的名称和图标不同

java - 如何在android中创建自定义开关控件

android - 永远不会调用 google api 客户端回调

android - 设置微调器所选项目文本

java - onOptionsItemSelected 未从 fragment 内调用

java - 如何从 XML 文件中删除多余的空行?

java - 直接打开 GooglePlay 评级部分?

c# - Windows 应用程序 C# 字符串组合框

python - 将 Python 字符串或字典插入 MySQL

javascript - JSON htmlentities javascript