3

在 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”以外的命名空间的建议,但是,对我来说重要的是,我不需要特别注意并在我的应用程序中放置不同的命名空间。

我究竟做错了什么?

4

0 回答 0