在 Android 的数据绑定文档中,它说
您还可以为 android 命名空间编写适配器。
我按照该文档中的示例代码并尝试绑定到 TextView 的android:text
设置器。
这是我写的 BinderAdapter:
@BindingAdapter("android:text")
public static void setText(TextView view, CharSequence text) {
view.setText(text + " - the BinderAdapter works!");
Log.d("MY_TAG", "the BinderAdapter works!");
}
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is dummy text"/>
</RelativeLayout>
当我运行应用程序时,我希望看到文本“这是虚拟文本 - BinderAdapter 有效!”,但是,我看到的文本是“这是虚拟文本”。此外,查看日志我没有看到setText()
被调用。
我阅读了(这里)关于使用“android”以外的命名空间的建议,但是,对我来说重要的是,我不需要特别注意并在我的应用程序中放置不同的命名空间。
我究竟做错了什么?