绑定 Html 的用户数据绑定。 fromHtml 字符串 android

Posted

技术标签:

【中文标题】绑定 Html 的用户数据绑定。 fromHtml 字符串 android【英文标题】:User Data Binding to Bind Html. fromHtml String android 【发布时间】:2020-04-15 07:50:12 【问题描述】:

嗨,我是 mvvm 结构的新手,我在这里学习新东西。目前我已将默认字符串与我的视图绑定,我有多种颜色的文本,因此我选择使用 html.fomHTml 螺母,我无法使用任何人都可以帮助解决我的测试代码下方的此绑定问题 ....

数据>

    <import type="android.text.Html"/>

    <variable
        name="loginviewmodel"
        type="app.road2xtech.neighbourhood.view.viewmodel.LoginViewModel" />

</data>



  <TextView
        android:id="@+id/textViewAccount"
        android:layout_
        android:layout_
        android:layout_marginBottom="56dp"
        android:fontFamily="@font/raleway_regular"
        android:gravity="center"
        android:text="@=Html.fromHtml(loginviewmodel.accountString)"
        android:textColor="@android:color/black"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

它会给我以下错误

The expression 'android.text.Html.fromHtml(loginviewmodelAccountString)' cannot be inverted, so it cannot be used in a two-way binding

Details: There is no inverse for method fromHtml, you must add an @InverseMethod annotation to the method to indicate which method should be used when using it in two-way binding expressions

【问题讨论】:

这样试试 android:text="@Html.fromHtml(loginviewmodel.accountString)" 也停止在 xml 中编写代码。这是一种不好的做法,而且很难调试。 @Black4Guy 是的,这对我有用 【参考方案1】:

这叫two-way data binding。

android:text="@=Html.fromHtml(loginviewmodel.accountString)"

InverseMethod 注释可以应用于双向数据绑定中使用的任何方法。因此,如果您不需要双向绑定,那么总结一下您的 XML,然后请使用它。

 android:text="@Html.fromHtml(loginviewmodel.accountString)"

这会奏效。 :)

【讨论】:

这种方式叫做不好的做法还是可以的? 使用数据绑定没问题。如果这不是上帝的方法,android 就不会首先启动它。

以上是关于绑定 Html 的用户数据绑定。 fromHtml 字符串 android的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS数据双向绑定

在 Android 中使用 Html.fromHtml() 突出显示文本颜色?

Vue.js 表单控件绑定

AngularJS 作用域与数据绑定机制

使用 Linkify.addLinks 与 Html.fromHtml 结合

Form 组件动态绑定数据