DataBinding函数库的引入方式:
android {    ......    dataBinding{        enabled = true    }}
DataBinding的布局文件
  • 以layout为根布局标签,包含data和view两个标签
  • data标签用来实现数据绑定
  • view标签就是布局
<?xml version="1.0" encoding="utf-8"?>                                        

注:
bookitem:属性变量,类型为BookItem的Java类
@{bookitem.mName}:将控件的值和bookitem的成员变量联系在一起

数据对象
/** * @author Administrator */public class BookItem implements Parcelable {    public final  String mName;    public final String mLastTime;    public final String mTitle;    public final String mPath;    public BookItem(String mName, String mLastTime, String mTitle, String mPath) {        this.mName = mName;        this.mLastTime = mLastTime;        this.mTitle = mTitle;        this.mPath = mPath;    }    @Override    public int describeContents() {        return 0;    }    @Override    public void writeToParcel(Parcel dest, int flags) {        dest.writeString(this.mName);        dest.writeString(this.mLastTime);        dest.writeString(this.mTitle);        dest.writeString(this.mPath);    }    protected BookItem(Parcel in) {        this.mName = in.readString();        this.mLastTime = in.readString();        this.mTitle = in.readString();        this.mPath = in.readString();    }    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {        @Override        public BookItem createFromParcel(Parcel source) {            return new BookItem(source);        }        @Override        public BookItem[] newArray(int size) {            return new BookItem[size];        }    };}
数据绑定
 @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);        BookItem book = new BookItem("你好", "2018-7-24", "Test", "../../../img");        binding.setBookitem(book);    }
事件绑定

xml中的绑定代码:

                      

事件处理类:

    public void onClickName(View view) {        Toast.makeText(view.getContext(), book.mName, Toast.LENGTH_SHORT).show();    }    public void onClickTitle(View view) {        Toast.makeText(view.getContext(), book.mTitle, Toast.LENGTH_SHORT).show();    }

注意
需要添加

binding.setClick(this);

完整的Activity:

public class MainActivity extends AppCompatActivity {    BookItem book = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);        book = new BookItem("你好", "2018-7-24", "Test", "../../../img");        binding.setBookitem(book);        binding.setClick(this);    }    public void onClickName(View view) {        Toast.makeText(view.getContext(), book.mName, Toast.LENGTH_SHORT).show();    }    public void onClickTitle(View view) {        Toast.makeText(view.getContext(), book.mTitle, Toast.LENGTH_SHORT).show();    }}
111.png 222.png

更多相关文章

  1. day01
  2. 【转】android中onMeasure初看,深入理解布局之一!
  3. android的Jetpack的navigation原理详解
  4. 安卓 屏蔽子控件点击事件
  5. 0828 - 精简 Lua 绑定第一步
  6. android 实现自定义卫星菜单
  7. Activity的创建
  8. 自定义Dialog之信息提示
  9. android support Percent支持库开发

随机推荐

  1. 在用Kivy开发Python手机游戏时通过Plyer
  2. Android(安卓)ThreadPoolExecutor线程池
  3. android 对话框对于返回值的处理
  4. Android-APP启动优化
  5. Dagger2的化简学习总结
  6. Android(安卓)效率开发之图片---Glide 旋
  7. Android(安卓)利用重力感应调整手机模式
  8. 酒浓码浓 - ios/android微信浏览器video
  9. Android自定义控件实现滑动开关效果
  10. Android(安卓)中 byte类型数据大于0x7F时