Android DataBinding 入门笔记
来源:互联网 发布:网络本科可以继续考研 编辑:程序博客网 时间:2024/05/29 14:27
最新写烦了findViewById,原来打算使用ButterKinfe的,突然想起来DataBinding,于是尝试一下;
首先启用DataBinding在项目gradle.build中设置
android { defaultConfig { ... ... dataBinding.enabled = true ... }}
JavaBean文件
public class UserBean { private String userName; private String userPhone; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPhone() { return userPhone; } public void setUserPhone(String userPhone) { this.userPhone = userPhone; }}
layout文件
在布局文件activity_main.xml
中修改布局根元素为<layout></layout>
<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"> <data> <variable name="user" type="com.tolcol.databindingdemo.bean.UserBean"/> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.tolcol.databindingdemo.MainActivity"> <TextView android:id="@+id/main_tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="@{user.userName}" tools:text="userName"/> <TextView android:id="@+id/main_tv_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="@{user.userPhone}" tools:text="userPhone"/> </LinearLayout></layout>
<data></data>
:此标签内容是数据
<variable name="user" type="com.tolcol.databindingdemo.bean.UserBean"/>
userName
属性设置的值就是在此布局文件中引用的名称,上述相当于java声明的
public UserBeanuser;
后面就可以在直接引用user对象了。
另外还有另一种写法:
<import type="com.tolcol.databindingdemo.bean.UserBean"/><variable name="user" type="UserBean"/>
用法同上;
更多待补充….
MainActivity文件
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main); //设置UserBean给xml data中定义的user UserBean userBean = new UserBean(); userBean.setUserName("DB_userName"); userBean.setUserPhone("DB_userPhone"); binding.setUser(userBean); binding.mainTvName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //textView Name 点击事件 } }); }}
- 设置布局
ActivityMainBinding binding = DataBindingUtil.setContentView(this,R.layout.activity_main);
原来的setContentView()替换为DataBindingUtil.setContentView(this,R.layout.activity_main);
这里的返回的变量ActivityMainBinding binding是DataBinding自动根据xml文件生成的类;
- 给xml里面定义的user赋值
UserBean userBean = new UserBean(); userBean.setUserName("DB_userName"); userBean.setUserPhone("DB_userPhone"); binding.setUser(userBean);
这里的setUser方法是框架自动根据中的name属性自动生成的set方法;
如果要获取空间,定义id之后可以通过binding.mainTvName获取控件;
mainTvName 对应的id就是main_tv_ name;
ps:命名风格因人而异,最好项目统一;
入门的最后:
- databinding的好处这里就可以显现出来了,至于是否更加方便,还是看具体的项目;
- databinding还支持一些逻辑判断,自定义View的设置值,双向绑定,这些以后有空会补充上来;
感谢阅读
阅读全文
0 0
- Android DataBinding 入门笔记
- Android使用DataBinding入门
- Android DataBinding入门篇
- Android databinding笔记
- Android DataBinding 学习笔记
- Android之Databinding学习笔记
- DataBinding入门
- Android学习笔记之--------DataBinding使用一
- Android 官方框架DataBinding学习笔记
- Android DataBinding
- Android DataBinding
- Android DataBinding
- Android DataBinding
- Android databinding
- android DataBinding
- Android Databinding 从入门到转行(一)初步介绍
- Android-DataBinding入门系列(一)基本介绍
- DataBinding学习入门篇
- js雨滴掉落效果,图片+js+css3完成
- together项目进度报告7
- 剑指offer——二维数组的查找
- 启动另一个App/apk中的Activity(A应用打开B应用)
- 2017春季实习生面试经历+找实习攻略
- Android DataBinding 入门笔记
- mave环境搭建
- 微擎二开笔记之一:framework\class\account.class.php
- SharePoint 发送邮件之 Windows 2012 配置SMTP服务器及测试代码
- vlc 前瞻
- c++操作输入法
- javascript 表格前端排序
- hadoop的hdfs中的namenode和datanode知识总结
- ClassPathXmlApplicationContext加载多个XML文件