DataBinding在AndroidStudio3.1上的应用

本文介绍DataBinding在Android项目中的使用方法,包括环境配置、XML数据绑定格式及在Activity、Fragment等场景下的调用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DataBinding的应用需要在android4.0(API14)及以上版本
首先需要在build.gradle文件中配置环境

android {
    ...
    dataBinding {
        enabled = true
    }
}

正常DataBinDing绑定到xml中的数据格式是,以layout标签为根,首先添加data标签,绑定数据,代码如下:【代码来源】

    <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android">
       <data>
           <variable name="user" type="com.example.User"/>
       </data>
       <LinearLayout
           android:orientation="vertical"
           android:layout_width="match_parent"
           android:layout_height="match_parent">
           <TextView android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:text="@{user.firstName}"/>
           <TextView android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:text="@{user.lastName}"/>
       </LinearLayout>
    </layout>

其中data中的变量标签的名称user是自定义的,type类型是必须实际存在的实体类,在TextView中的引用就是以@{}包裹的方式

在Activity中DataBinding调用xml有两种方式,一种是通过DataBingdingUtil调用xml文件名:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
       User user = new User("Test", "User");
       binding.setUser(user);
    }

第二种是直接通过LayoutInflater隐式的生成:

    ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());

第三种:如果View已经被生成,需要重新绑定到Binding时可以调用如下:
MyLayoutBinding binding = MyLayoutBinding.bind(viewRoot);
如果是在Fragment、ListView、Recyclerview中则可以通过以下两种方式调用:

    ListItemBinding binding = ListItemBinding.inflate(layoutInflater, viewGroup, false);

    ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);

注意:DataBinding绑定xml并自动生成Bingding文件的名称,是根据你定义xml文件的文件名称自动生成的,例如:你定义了一个activity_main.xml的文件,那么自动绑定完成之后生成的Binding文件名就是ActivityMainBinding.java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值