Java Android自定义视图中的数据绑定

Java Android自定义视图中的数据绑定,java,android,android-layout,android-fragments,Java,Android,Android Layout,Android Fragments,我已经创建了一个自定义布局,如下所示。我想用这个布局执行数据绑定。如何执行此任务 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:layout_width="wrap_content" android:layout_he

我已经创建了一个自定义布局,如下所示。我想用这个布局执行数据绑定。如何执行此任务

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true">
        <TextView
            android:id="@+id/no_internetConnection_Text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_toRightOf="@+id/icon_noInternet_connection"
            android:text="@string/no_Internet_Connection_text" />
    </LinearLayout>
</layout>
目前我得到一个错误。这是因为布局标签

Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class layout

我希望您已经在模块gradle文件中启用了数据绑定

android {
    ....
    dataBinding {
        enabled = true
    }
}

我希望您已经在模块gradle文件中启用了数据绑定

android {
    ....
    dataBinding {
        enabled = true
    }
}

由于xml文件不包含数据标记,因此未生成MyLayoutBinding。将数据标记放入布局并在数据内声明变量后,应生成MyLayoutBinding

由于xml文件不包含数据标记,因此不会生成MyLayoutBinding。将数据标记放入布局并在数据内声明变量后,应生成MyLayoutBinding

您需要添加

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <merge>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true">
        <TextView
            android:id="@+id/no_internetConnection_Text"
            android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_toRightOf="@+id/icon_noInternet_connection"
        android:text="@string/no_Internet_Connection_text" />
</LinearLayout>
<merge/>
</layout>
您需要添加

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <merge>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true">
        <TextView
            android:id="@+id/no_internetConnection_Text"
            android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_toRightOf="@+id/icon_noInternet_connection"
        android:text="@string/no_Internet_Connection_text" />
</LinearLayout>
<merge/>
</layout>

对于有相同问题的其他人,请检查以下内容:

  • XML文件必须具有布局标记
  • 绑定类名将基于XML文件名生成。my_file.xml将产生名称“myFileBinding”
  • 如果找不到绑定类,请尝试重新生成项目

对于有相同问题的其他人,请检查以下内容:

  • XML文件必须具有布局标记
  • 绑定类名将基于XML文件名生成。my_file.xml将产生名称“myFileBinding”
  • 如果找不到绑定类,请尝试重新生成项目

是,我已在模块gradle fileCustomtoastBinding中启用数据,但我的案例中未生成该类。我不在活动类或onCreate方法中。是,我已在模块gradle fileCustomtoastBinding中启用数据。我的案例中未生成该类。我不在活动类或onCreate方法中。因为你缺少重要的部分。例如
MyLayoutBinding=MyLayoutBinding.bind(viewRoot)MyLayoutBinding类未在我的案例中生成。我无法找到该绑定类。我不在活动课上。这重要吗???因为你缺少重要的部分。例如
MyLayoutBinding=MyLayoutBinding.bind(viewRoot)MyLayoutBinding类未在我的案例中生成。我无法找到该绑定类。我不在活动课上。这重要吗???