我正在尝试在我的Android应用中实现数据绑定,但是我遇到了这个问题:
java.lang.ClassNotFoundException: Didn't find class "android.view.data"
我的布局文件如下所示:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.myapp.views.fragments.LocationSearchFragment">
<!-- data setup -->
<data>
<variable name="location"
type="com.myapp.models.Address" />
</data>
</LinearLayout>
</layout>
我使用以下行更新了我的build.gradle
文件:
dataBinding {
enabled = true
}
正如文档所示:https://developer.android.com/topic/libraries/data-binding/index.html。我正在运行最新版本的Android Studio。
答案 0 :(得分:3)
您需要将data
定义置于LinearLayout
之外:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!-- data setup -->
<data>
<variable name="location"
type="com.myapp.models.Address" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.myapp.views.fragments.LocationSearchFragment">
</LinearLayout>
</layout>
答案 1 :(得分:1)
数据绑定永远不会出现在<LinearLayout>
中。您应该将它放在<layout>
区域中,如下所示:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!-- data setup -->
<data>
<variable name="location"
type="com.myapp.models.Address" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.myapp.views.fragments.LocationSearchFragment">
</LinearLayout>
</layout>