Android databinding error: cannot find symbol of my custom @BindingAdapter
Android databinding error: cannot find symbol of my custom @BindingAdapter
我正在尝试添加应用程序全局自定义 @BindingAdapter
。我创建了 TextViewBinding.kt
文件,并将其放入单独的包 com.my.app.binding.TextViewBinding
。当我编译应用程序时,出现错误
error: cannot find symbol
TextViewAdapterKt.setTypeface(this.titleTextView, viewedJavaLangStringNormalJavaLangStringBold);
如果我将适配器函数放入Activity,则没有错误。但是,因为它是应用程序全局适配器,所以我不希望它属于任何特定视图。那么,我应该将适配器函数放在哪里以消除错误?
TextViewAdapter.kt
@BindingAdapter("typeface")
fun TextView.setTypeface(style: String) {
when (style) {
"bold" -> setTypeface(null, Typeface.BOLD)
else -> setTypeface(null, Typeface.NORMAL)
}
}
my_list_item.xml
...
<TextView app:typeface='@{viewed ? "normal" : bold"}' ... />
...
终于找到错误原因了。我只是忘了将包声明添加到 TextViewAdapter.kt
文件的顶部。
我正在尝试添加应用程序全局自定义 @BindingAdapter
。我创建了 TextViewBinding.kt
文件,并将其放入单独的包 com.my.app.binding.TextViewBinding
。当我编译应用程序时,出现错误
error: cannot find symbol TextViewAdapterKt.setTypeface(this.titleTextView, viewedJavaLangStringNormalJavaLangStringBold);
如果我将适配器函数放入Activity,则没有错误。但是,因为它是应用程序全局适配器,所以我不希望它属于任何特定视图。那么,我应该将适配器函数放在哪里以消除错误?
TextViewAdapter.kt
@BindingAdapter("typeface")
fun TextView.setTypeface(style: String) {
when (style) {
"bold" -> setTypeface(null, Typeface.BOLD)
else -> setTypeface(null, Typeface.NORMAL)
}
}
my_list_item.xml
...
<TextView app:typeface='@{viewed ? "normal" : bold"}' ... />
...
终于找到错误原因了。我只是忘了将包声明添加到 TextViewAdapter.kt
文件的顶部。