我尝试使用@BindingAdapter设置params时出现数据绑定错误

时间:2017-03-02 14:13:29

标签: android

我想使用@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:发现数据绑定错误。   **** /数据绑定错误****消息:标识符必须具有XML文件中的用户定义类型。姓名缺少   文件:C:\机器人\工作\项目\程序\ SRC \主\水库\布局\ activity_sign_in.xml   当前:67:34-67:37   **** \数据绑定错误****

如何解决?

1 个答案:

答案 0 :(得分:1)

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

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

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

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