Android的Databinding-普通绑定
1. 使用ActivityBasicBinding binding = DataBindingUtil.setContentView(this, R.layout.main);代替之前使用的setContentView
2. 创建一个pojo的数据类,例如User
3. main.xml这个布局添加,User就是数据对象
<data>
<import type="com.liangfeizc.databinding.model.User" />
<variable name="user" type="User" />
</data>
4. 布局中需要读取User的属性值使用{user.name}读取。
5. 设置值的时候创建User对象,并使用ActivityBasicBinding的对象调用setUser方法,创建ActivityBasicBinding对象的时候就会自动生成setUser方法。
6. 使用类方法,在xml的data节点导入:
1 <import type="com.liangfeizc.databindingsamples.utils.MyStringUtils" />
7. 使用办法
1 <TextView 2 android:layout_width="wrap_content" 3 android:layout_height="wrap_content" 4 android:text="@{MyStringUtils.capitalize(user.firstName)}" />
8. 类型别名,避开类名相同的情况
1 <import type="com.example.home.data.User" /> 2 <import type="com.examle.detail.data.User" alias="DetailUser" /> 3 <variable name="user" type="DetailUser" />
9. 三目运算符简写法等价于:
1 android:text="@{user.displayName ?? user.lastName}"
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 我干了两个月的大项目,开源了!
· 推荐一款非常好用的在线 SSH 管理工具
· 千万级的大表,如何做性能调优?
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· .NET周刊【1月第1期 2025-01-05】