DataBinding框架学习

来源:互联网 发布:淘宝篮球正品店推荐 编辑:程序博客网 时间:2024/05/18 03:11

转自:http://www.jianshu.com/p/87d4b9f30960


DataBinding(框架,数据绑定,对MVVM的一种实现,直接绑定数据到XML中,自动刷新)
1、在module的build.gradle文件中配置
   dataBinding{
    enabled = true
   }
2、在XML文件中添加layout标签和data标签
   <layout xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools">
  <data> //创建并声明变量
   <variable
name="movie" //变量名和变量类型
type="com.demo.app.Movie"/>
  </data>
  //下面写你原来的布局就行  
    </layout>
3、只就数据绑定举个例子
   Movie类:
   public class Movie{
   public String name;
   public int price;
   public String content;
    public void onClick(View view,Movie movie){
 //这里面根据获取的movie对象的数据来响应点击事件
}
   }
   xml文件里面控件绑定数据:
   <android.support.design.widget.FloatingActionButton
    android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
    android:layout_marginEnd="10dp"
    android:layout_marginBottom="10dp"
android:onClick="@{(view)-> movie.onClick(view,movie)}"/> //绑定点击事件
<TextView
 android:layout_width="wrap_content"
      android:layout_height="wrap_content"
 android:text="@{movie.name}"/> //使用变量
在Activity里面给XML文件传数据
ViewDataBinding dataBinding = DataBindingUtil.setContentView(ButtonActivity.this
,R.layout.activity_button); //R.layout.activity_button为包含layout标签和data标签的布局文件
Movie movie = new Movie("haha",50,"smile")
dataBinding.setVariable(BR.movie,movie); //BR.movie是上面XML里面声明的movie变量,这里是给变量赋值
到此运行程序你会发现点击事件有响应了,TextView上面显示的为haha,表明数据绑定成功。

原创粉丝点击