Android开发教程 - 使用Data Binding(三)在Activity中的使用
本系列目录
- 使用Data Binding(一)介绍
- 使用Data Binding(二)集成与配置
- 使用Data Binding(三)在Activity中的使用
- 使用Data Binding(四)在Fragment中的使用
- 使用Data Binding(五)数据绑定
- 使用Data Binding(六)RecyclerView Adapter中的使用
- 使用Data Binding(七)使用BindingAdapter简化图片加载
- 使用Data Binding(八)使用自定义Interface
- 使用Data Binding Android Studio不能正常生成相关类/方法的解决办法
修改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正常生成:
- 定义成员变量:
private ActivityMainBinding mBinding;
- 在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等第三方库,省时省力。
除了获取布局中的元素,后续的文章我们会讲到如何设置布局中的数据,可以点击这里查看。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android常用开源库整理汇总
1.基本控件 1.1.TextView ScrollNumber ReadMoreTextView HtmlImage android-autofittextview html-textview BabushkaText ticker ExpandableTextView Android-TextView-LinkBuilder TextJustify-Android advanced-textview SlantedTextView RichText MixtureTextView 1.2.EditText MaterialEditText android-edittext-validator ClearEditText android-edittext-validator PasswordEditText 1.3.ImageView CircleImageView android-gif-drawable MultiImageSelector GalleryFinal PhotoPicker ImagePicker Android-Universal-Image-Loader an...
- 下一篇
一套源码编译多个APP
用Android Studio 开发软件,一定要熟悉Gradle的使用。一套源码编译多个APP,就是通过Gradle实现的。下面就先简单介绍一下怎么使用Gradle编译多个APP,以后会逐步深入解读。 要求:APP 名字 APP 包名 APP 图标 界面颜色 不同 1.新建两个目录 在app -> src -> 目录右键 -> New -> Directory 新建两个目录 把各个app 需要的资源文件,分开拷贝,需要什么界面效果,在各自的资源文件配置就好。 2.我们在 app的gradle下 添加如下代码 APP唯一标识 版本号 APP名字(使用占位符,在清单文件替换的) android { compileSdkVersion 26 buildToolsVersion "25.0.3" defaultConfig { applicationId "com.example.wh.myapplication" minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstr...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程