Android DataBinding 报错
Android DataBinding 详解也是错的;
昨天折腾了一下午照着官方写Android DataBinding 老是各种报错,最后这里贴出2018.10.13使用DataBinding 的正确使用:
转载注明出处,Write By xyx In csdn @包罗万码
地址:https://blog.csdn.net/a316375/article/details/83036493
首先app配置文件中:添加声明这个dataBinding
android {
dataBinding {
enabled = true
}
...............}
首先>>>>>>>附上一个User类:
public class User {
private final String firstName;
private final String lastName;
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return this.firstName;
}
public String getLastName() {
return this.lastName;
}
}
下面:class=UserBulind类名必须是大写开头否则报
Android studio IllegalArgumentException: couldn't make a guess
然后就可以使用了:注意,红色部分官网没有说,网上的教程以讹传讹也没有说,没有声明这个在ActivIty不能生成你要的Binding;
蓝色字体是你text中的@{蓝色.xx}的名字
粉色字体是你定义的bean的路径,包名+类名
<data class="UserBulind">
<variable
name="user"
type="xyxgame.game.User" />
</data>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data class="UserBulind">
<variable
name="user"
type="xyxgame.game.User" />
</data>
<RelativeLayout......../>
</layout>
示例如下:
android:text="@{user.firstName}" />
Activity中绑定的方法:前面没有声明UserBulind的时候,这里只能返回父类ViewDataBinding ,没有setUser方法,
UserBulind viewDataBinding = DataBindingUtil.setContentView(this, R.layout.activity_welcom);
User user = new User("xyxgame", "xyxgame");
viewDataBinding.setUser(user);