我想使用@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 **** \数据绑定错误****
如何解决?
答案 0 :(得分:1)
在app:boldHebrewText="@{Name}"
中,Name
必须是数据标记中声明的变量,例如
<data>
<variable name="Name" type="java.lang.String" />
</data>
或Name
不是变量,而是字符串值,所以
app:boldHebrewText="@{`Name`}"