数据绑定是 Android 开发中提升代码可读性和维护性的核心特性,通过将 UI 组件与数据源直接关联,减少冗余的 findViewById 操作。以下是快速入门指南:
📚 基本概念
- 数据绑定框架:基于
DataBinding
库,支持双向数据绑定(如@Bindable
注解) - 绑定表达式:使用
{}
包裹数据源,例如text={viewModel.userName}
- ViewModel 层:通过
ViewModel
管理 UI 相关数据,与LiveData
配合使用
🛠️ 实现步骤
- 在
build.gradle
启用数据绑定android { ... dataBinding { enabled = true } }
- 创建绑定变量类
public class UserViewModel extends BaseObservable { private String name; @Bindable public String getName() { return name; } public void setName(String name) { this.name = name; notifyPropertyChanged(BR.name); } }
- 在布局文件中使用绑定表达式
<layout> <data> <variable name="userViewModel" type="com.example.UserViewModel" /> </data> <TextView android:text="@{userViewModel.name}" /> </layout>
📌 常见用法
- 动态更新:当
ViewModel
数据变化时,UI 自动刷新 - 复杂绑定:支持
@{expression}
绑定方法调用 - 双向绑定:通过
@={}
实现输入框与数据的同步
📁 相关资源
- 数据绑定进阶教程(包含自定义绑定器实现)
- Room 数据库与绑定结合实践(演示数据持久化场景)
- 官方文档参考(英文原生资源)
💡 小贴士:数据绑定与
MVVM
架构结合使用时,建议配合LiveData
实现数据驱动的 UI 更新。更多实战案例可参考 Android 架构组件系列。