【问题标题】:data binding error when I try set params with @BindingAdapter当我尝试使用 @BindingAdapter 设置参数时出现数据绑定错误
【发布时间】:2017-07-22 07:36:03
【问题描述】:

我想使用 @BindingAdapter 注释为我的 TextView 设置自定义字体。

这是我的课:

public class DataBindingAdapters {
    @BindingAdapter("boldHebrewText")
    public static void boldCusomText(@NonNull TextView tv, @NonNull String text) {
        tv.setText(text);
        FontUtils.setFont(tv, FontUtils.OPEN_SANS_BOLD);
    }
}

这部分来自我的 xml:

<EditText
        android:id="@+id/editText"
        style="@style/JWidget.EditText.White"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        app:boldHebrewText="@{Name}"... />

当我尝试构建 apk 时出现此错误:

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.

java.lang.RuntimeException:发现数据绑定错误。 ****/ 数据绑定错误 ****msg:标识符必须具有来自 XML 文件的用户定义类型。名字不见了 文件:C:\android\work\Projects\app\src\main\res\layout\activity_sign_in.xml 地点:67:34 - 67:37 ****\数据绑定错误****

如何解决?

【问题讨论】:

    标签: android


    【解决方案1】:

    在app:boldHebrewText="@{Name}"中,Name必须是数据标签中声明的变量,例如,

    <data>
      <variable name="Name" type="java.lang.String" />
    </data>
    

    或者Name不是变量,而是字符串值,所以

    app:boldHebrewText="@{`Name`}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-06
      • 2017-06-22
      • 2021-01-06
      • 1970-01-01
      相关资源
      最近更新 更多