本系列目录

修改activity布局

如果使Activity支持Data Binding,在布局的最外层加入"<layout>"标签即可,由于是加在最外层,所以即使重构现有工程,所做的修改也非常简单,并不会影响现有的布局结构。

以下以MainActivity进行举例。

修改前activty_main.xml的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
> <TextView
android:id="@+id/tv_example"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
/> </LinearLayout>

修改后activty_main.xml的布局:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> <data> </data> <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
> <TextView
android:id="@+id/tv_example"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp" /> </LinearLayout>
</layout>

这里的<data>标签中的元素放的是页面所需的数据,后面的文章我们会讲到,也可以直接点击这里查看,这里我们暂且放一下,重点讲Activity中Data Binding的使用。

在Activity中进行绑定

上面我们修改了布局后,下面我们就可以在代码中进行数据绑定了。此时工程中会自动生成该布局对应的java绑定文件:ActivityMainBinding。仔细观察就会发现,这个文件名就是将布局的下划线形式转换成java规范的驼峰形式,后面加上Binding。

下面进入MainActivity.java中下面我们进行数据绑定操作。

如果写代码过程中发现IDE并没有自动正确生成对应的Binding类,则参考这篇文章:Android Studio不能正常生成相关类/方法的解决办法,仅需几步操作即可使IDE正常生成:

  1. 定义成员变量:
private ActivityMainBinding mBinding;
  1. 在onCreate()中初始化mBinding
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
mBinding.tvExample.setText("Binding Text");
}

此时就可以从mBinding中获取到布局中的所有View了,比如上面的mBinding.tvExample。

总结

Activity中使用Data Binding很简单,省去了模版化的代码findViewById(),也避免了使用ButterKnife等第三方库,省时省力。

除了获取布局中的元素,后续的文章我们会讲到如何设置布局中的数据,可以点击这里查看。

如有更多疑问,请参考我的其它Android相关博客:我的博客地址

Android开发教程 - 使用Data Binding(三)在Activity中的使用的更多相关文章

  1. Android开发教程 - 使用Data Binding(八)使用自定义Interface

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  2. Android开发教程 - 使用Data Binding(六)RecyclerView Adapter中的使用

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  3. Android开发教程 - 使用Data Binding(一) 介绍

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  4. Android开发教程 - 使用Data Binding Android Studio不能正常生成相关类/方法的解决办法

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  5. Android开发教程 - 使用Data Binding(七)使用BindingAdapter简化图片加载

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  6. Android开发教程 - 使用Data Binding(五)数据绑定

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  7. Android开发教程 - 使用Data Binding(四)在Fragment中的使用

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  8. Android开发教程 - 使用Data Binding(二)集成与配置

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  9. Android开发利器之Data Binding Compiler V2 —— 搭建Android MVVM完全体的基础

    原创声明: 该文章为原创文章,未经博主同意严禁转载. 前言: Android常用的架构有:MVC.MVP.MVVM,而MVVM是唯一一个官方提供支持组件的架构,我们可以通过Android lifecy ...

随机推荐

  1. .net获取本地ip地址

    整理代码,.net获取本地ip地址,代码如下: string name = Dns.GetHostName(); IPHostEntry IpEntry = Dns.GetHostEntry(name ...

  2. 2017/2/10springMVC中文乱码问题

    springMVC中文乱码问题 一:从jsp传到后台控制出现的乱码有以下两个方面: 1.当提交方式为get的时候(因为字符拦截器无法拦截get): 修改方法为: 再改工程里的tomcat的配置文件se ...

  3. 嵌入式C编程代码优化笔记

    [优化永远是追求某种平衡而不是走极端,优化是有侧重点的,优化是一门平衡的艺术,它往往要以牺牲程序的可读性或者增加代码长度为代价] 1.选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆 ...

  4. mybatis学习 十 动态 SQL

    1.  根据方法传入的参数不同执行不同的 SQL 命令.称为动态 SQL, MyBatis 中动态 SQL 就是在 mapper.xml 中添加逻辑判断等. 2. <if>标签 <s ...

  5. get load 代理对象

    01使用session中的load方法查询数据库中的记录时,我们返回的是一个代理对象,而不是真正需要的那个对象. 02 因为代理对象的出现 才导致延迟加载. 还有采用懒加载的时候容易出现nosessi ...

  6. 异常处理(异常解析器) 和 对于Properties类型的属性的配置

    在程序运行中,有可能因为用户的不当操作,发生异常.. 在springmvc中可以根据不同的异常配置不同的处理方式 1.例如出现 这个类型异常 org.springframework.web.multi ...

  7. python约束 异常 MD5 日志处理

    一.约束 1.用父类执行约束 子类继承父类,用重写方法,对子类的方法进行约束. class Foo: def login(self): # 对子类进行约束,该方法需要重写 # 没有执行的错误 rais ...

  8. 2018.11.01 NOIP训练 cost数(搜索+容斥原理)

    传送门 唉考试的时候忘记剪倍数的枝了666666分滚粗. 其实就是一直取lcmlcmlcm搜索,然后容斥原理统计就行了. 代码

  9. springboot 配置DRUID数据源

    druid 是阿里开源的数据库连接池. 开发时整合   druid 数据源过程. 1.修改pom.xml <dependency> <groupId>mysql</gro ...

  10. 访问前台页面${pageContext.request.contextPath}/el表达式失效问题解决

    访问前台页面${pageContext.request.contextPath}/el表达式失效问题解决 2017年05月09日 10:54:18 AinUser 阅读数:922 标签: el表达式4 ...