type=“com.lihang.databindinglover.User”/>
Activity里的使用都是非常简单的,如果有不明白,稍后放出链接。
这里还有特殊功能,比如我们再布局预览页面。通常会使用 **tools:text=“中间的”**来预览布局,这个时候可以通过
使用default的时候,即使是studio3.5里,也不提示,不过不影响。还有一点,在DataBinding里,已经处理了null。所以这个时候你在Activity里给user设置为null。也不会崩溃
二、DataBinding在Fragment和RecyclerView里的使用
在Fragment的使用和Activity里的使用一样。获取根目录的方式如下。
//注意获取根布局是
View view = activityAlisBinding.getRoot();
这里重点介绍下再recyclerView里的用法。我们以前是不是写ViewHolder写的烦了?用上了DataBinding后,这么告诉你一个ViewHolder就能搞定一切需要的ViewHolder
先看下我们的唯一的ViewHolder。首先提下,自动生成的Binding的父类都是ViewDataBinding。我是把ViewHolder单独拉出来了。这样大家都能用:
public class NewViewHolder extends RecyclerView.ViewHolder {
public ViewDataBinding binding;
public NewViewHolder(ViewDataBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
}
在Adapter里只需要职业
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
ItemNewOrderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(viewGroup.getContext()), R.layout.item_new_order, viewGroup, false);
return new NewViewHolder(binding);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
NewViewHolder newViewHolder = (NewViewHolder) viewHolder;
//如果是多布局,那么对binding进行一个 instansof的一个判断就好。这样我们的ViewHolder永远只需要一个
ItemNewOrderBinding binding = (ItemNewOrderBinding) newViewHolder.binding;
binding.txtName.setText(“这样就能使用了!!”);
}
三、单向数据绑定
单向绑定可以理解为,改变了bean对象里的数据,就会自动改变我们xml的显示。这里涉及到3个类: BaseObservable、ObservableField、ObservableCollection。看这个名字就知道有点类似观察者模式