今天在使用databinding时候一直报无法根据xml生成activityMainBinding类,网上方法千篇一律都未能解决,先说一下集成步骤吧
1.在app的build.gradle文件下android根节点添加开启databinding,android studio根据开关会引入相应的库,build一下吧
dataBinding{
enabled = true
}
2.找到布局文件,在根布局alt+enter,按图修改
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLxEERPNTWE1EeNpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL4kTN1UjMwETMzETMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
3.在data节点添加variable节点,将data数据Model与view建立关系
4.建立model类,生命变量,在这回归正题,有的小伙伴按照入门教程,没有建立get ,set方法,导致,无法运行,报错找不到相应的databing类,仔细想了一下,应该是databing通过get方法来进行视图与数据绑定。
5.返回布局文件,写一个测试TextView 添加 android:text="@{userInfo.name}"来获取数据
6.返回Activity,在oncreate()方法去掉原来绑定视图的setCotentView(),添加如图,
总结:出现无法生成databinding类,要么布局文件出错,比如曾经遇到过的资源文件出错,Textview疏忽写成了textview,这些都会报错,但没指向性,variable未导包无法找到model,最重要的写model时候加上get set方法