DataBinding用法

半导体AMHS天车振动控制:从0.5G到超低振动的技术演进与工程实战 在先进晶圆厂中,自动化物料搬运系统(AMHS)的天车如同空中出租车,承担着晶圆盒(FOUP)在洁净室各工艺区间的转运任务。然而,当天车加减速、过弯或抓取时产生的机械振动通过轨道梁和建筑结构传递至光刻机等敏感设备,便可能直接威胁套刻精度与良率。传统被动减振方案依靠橡胶垫和弹簧,在0.5G指标时代曾行之有效,但在EUV光刻和先进制程面前已力不从心。主动振动控制技术通过传感器、控制器与作动器构成的闭环系统,在轨道吊点和机械手端实时输出反向力抵消振动,配合磁悬浮走行、轻量化结构及调度系统的路径优化,将振动从0.5G 阅读详情

1.新建工程。要使用DataBinding,要求Android 的Gradle插件版本不低于 1.5.0-alpha1:

classpath 'com.android.tools.build:gradle:1.5.0'

2.在Module的 build.gradle的android{ ...  }里增加一个插件:

dataBinding{ enabled true }

3.添加一个数据对象。以User类为例,User.java内容为:

public class User {
    private String name;
    private int age;
    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
4.布局文件。

4.1必须以<layout>为顶层视图,其他视图都要放在<layout>里。命名空间也写在<layout>里。

<layout xmlns:android="http://schemas.android.com/apk/res/android">
	<RelativeLayout
        	android:layout_width="match_parent"
       		android:layout_height="match_parent"
	        android:paddingBottom="@dimen/activity_vertical_margin"
       		android:paddingLeft="@dimen/activity_horizontal_margin"
	        android:paddingRight="@dimen/activity_horizontal_margin"
        	android:paddingTop="@dimen/activity_vertical_margin">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World" />
    </RelativeLayout>
</layout>
4.2现在开始定义变量。方法是在<layout>下,添加一对<Data></Data>标签,在此标签内,定义一个变量。

<data>
    <variable name="user" type="com.example.coder.myapplicationdatabinding.User" />
</data>
其中name="user",是我们为这个变量取的名,在此布局文件中可以用这个名字代表type中所定义的类。type="...",要写全名。

4.3修改需要用到User的控件。例如:在<TextView>里显示User类的name.只需要把android:text="Hello World"改成:

android:text="@{ user.name  }" />
完整的布局文件内容为:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data><variable name="user" type="com.example.coder.myapplicationdatabinding.User" /></data>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{ user.name }" />
    </RelativeLayout>
</layout>
5.终于来到最后一步,绑定变量。

在不使用 DataBinding的情况下,接下来要做的就是修改Activity的onCreate()方法,先后用setContentView()、findViewById()、settext()等方法逐个获取控件ID、设置控件内容。现在使用DataBinding就不用这么烦琐。在上一步布局文件设置完成后,我们刚才在 build.gradle 中添加的那个插件-com.android.databinding 会根据 xml 文件的名称 Generate 一个继承自   ViewDataBinding 的类。 当然,IDE 中看不到这个文件,需要手动去 build 目录下找(工程名\app\build\intermediates\data-binding-layout-out\debug\layout)。例如,这里 xml 的文件名叫 activity_main.xml,那么生成的类就是ActivityMainBinding。

现在正式开始修改代码,只需增加2行。转到布局文件对应的Activity.java文件,用DataBindingUtil()方法替换掉setContentView()方法,其返回值为上面提到的自动生成的ActivityMainBinding类的一个实例;对返回的实例进行初始化设置。代码如下:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
    binding.setUser(new User("张",20));
}
注意:自动生成的这个类,其实不一定要到build下寻找,它的命名是很有规律的,基本上是和布局文件名相同的,只需要打几个字母就能在Android Studio的提示里找到。这个类是自动生成的,同时这个类还会生成set方法,方法名则是根据variable名称生成的。在布局文件中定义了一个name="user",这个类就会生成setUser()方法,其参数必须为type="..."所规定的类型。我们在Activity中就可以利用这个方法对控件进行绑定。

完毕,可以编译运行了。关于DataBinding的高级用法还很多,以后慢慢体会。

参考资料:https://github.com/LyndonChin/MasteringAndroidDataBinding



基于STM32的坐姿矫正与久坐提醒系统 | 保姆式教程 开源可复刻 本项目基于STM32F103C8T6主控,搭配MPU6050六轴姿态传感器、HC-SR04超声波测距模块,完整实现了坐姿矫正与久坐提醒系统的全流程开发,从多传感器数据采集、数字滤波、姿态解算、坐姿判断到多模式提醒,全流程无跳步保姆式拆解,配套逐行注释可直接编译的开源代码,新手跟着步骤一步步操作,就能顺利完成项目复刻 阅读详情

相关推荐

19-5 ACC 自适应巡航控制系统需求

本专题由深圳季连AIgraphX李博及团队出品,主要讲解ACC自适应巡航控制系统的开发与仿真测试。具体说来,包括ACC标准/法规分析、系统需求、系统架构、软件需求、软件架构、算法建模、验证场景分析、仿真实验搭建等内容。 本节主要讲ACC系统需求。

AIgraphX 1090

DataBinding的基本使用

DataBinding 是谷歌官方发布的一个框架,顾名思义即为数据绑定,是 MVVM 模式在 Android 上的一种实现,用于降低布局和逻辑的耦合性,使代码逻辑更加清晰。MVVM 相对于 MVP,其实就是将 Presenter 层替换成了 ViewModel 层。DataBinding 能够省去我们一直以来的 findViewById() 步骤,大量减少 Activity 内的代码,数据能够单向...

lixinxiaos的博客 889

YT8531 PHY芯片硬件设计与MDIO/RGMII实战指南

以太网PHY芯片是FPGA系统实现网络通信的物理层核心,其关键在于标准接口(如MDIO管理总线和RGMII数据接口)的正确实现与协同。MDIO作为IEEE 802.3定义的低速配置通道,负责寄存器级控制与状态监控;RGMII则通过双沿采样精简引脚,在千兆速率下兼顾性能与PCB布线可行性。技术价值体现在电压兼容性(支持1.8V/2.5V/3.3V)、可编程时序调节(RX_DELAY/TX_DELAY)及多级环回测试能力,显著提升国产FPGA平台(如Xilinx Zynq)的工程鲁棒性。典型应用场景涵盖嵌入式网

weixin_42453228的博客 1337

DataBinding使用介绍

Android DataBinding使用介绍

duanchuanzhi的博客 986

ThingsBoard PE专业版解决方案技术文档——温度&湿度

温湿度解决方案

weixin_67440240的博客 819

【异常】Cursor导入Karpathy指南失败解决方案Failed to import GitHub/GitLab rules: Error executing git: Cloning into

摘要:本文解决了Git克隆单个文件报错的问题,指出git clone只能克隆整个仓库而非单个文件。提供了两种解决方案:1) 推荐手动创建规则文件,在Cursor项目中新建.mdc文件并粘贴Karpathy行为指南完整内容;2) 备选克隆整个仓库获取文件。指南包含编码行为规范,强调简单性、精准修改和明确目标。还说明了如何设置全局规则和即时生效的方法。

奶爸的编程之路,也就一周冷个三天 174

DataBinding的用法

一、基本介绍 DataBinding数据绑定库是一种支持库,借助该库,可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。这是官方给出的介绍。 那么为什么要使用DataBinding? 首先,再也不需要使用findViewById()来初始化控件了; 另外,更新UI不再需要切换到UI线程,而是可以通过数据分解映射到各个View。 二、学习教程 http...

weixin_30266885的博客 219

【FPGA教程案例49】控制案例1——基于FPGA的PID控制器verilog实现

PID控制器产生于1915年,PID控制律的概念最早是由LYAPIMOV提出的,到目前为止,PID控制器以及改进的PID控制器在工业控制领域里最为常见。PID控制器(比例-积分-微分控制器),由比例单元 P、积分单元 I 和微分单元 D 组成。通过Kp,Ki和Kd三个参数的设定。PID控制器主要适用于基本线性和动态特性不随时间变化的系统。图1为PID控制器的基本结构框图。PID控制器以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。...

FPGA/MATLAB学习教程/源码/项目合作开发 4531

【Android】DataBinding 最全使用解析

【Android】DataBinding 最全使用解析

浪漫之圣 1万+

车辆网络安全ISO/SAE 21434解读(一)概述

ISO/SAE 21434 《道路车辆 网络安全工程》是SAE和ISO共同制定的一项针对道路车辆的网络安全标准,它是一个面向汽车行业全供应链(OEM及各级供应商)的车辆网络安全管理指导文件

xiaoxiabang的博客 8426

基于simulink的车道保持辅助系统(LKA)的仿真与实现

本文介绍了如何利用Simulink实现车道保持辅助系统(LKA)的仿真与建模。首先对比了车道偏离预警(LDW)和LKA的功能差异,强调LKA的主动干预特性。接着详细阐述了LKA系统架构,包括环境感知、决策控制等核心组件,并基于自行车模型建立车辆横向动力学方程。 文章重点演示了Simulink建模步骤:搭建车辆动力学模型、设计LKA控制器(采用LQR算法)、实现执行器接口和驾驶员干预检测。通过四个典型场景的仿真测试,验证了系统在直道行驶、弯道跟踪等工况下的控制性能,并给出了关键评价指标。最后展望了MPC控制、

amy_mhd的博客 228

DataBinding使用及其原理

DataBinding的意义 1、布局文件通常只负责UI控件的布局工作,页面中通过代码对控件需要进行各种操作,承担了绝大部分的工作量 2、DataBinding让布局文件承担了部分原本属于页面的工作,也使得布局文件和页面的耦合度进一步降低 3、使得UI控件能够直接合数据模型中的字段绑定,甚至能响应用户的交互。方便实现MVVM 一、DataBinding简单使用 1、启动DataBinding 在模块下的build.gradle文件中,启动dataBinding。如果没有该命令,请升级版本 android {

breeze048的博客 3682

甲基化生物信息学分析及批次效应校正全流程

本文系统阐述了DNA甲基化数据分析中的批次效应问题及解决方案。甲基化数据(β值和M值)对实验批次差异高度敏感,可能导致假阳性结果。文章详细介绍了批次效应检测方法(PCA可视化、BEclear定量评分)和校正流程,包括数据预处理、参数化(ComBat-met)与非参数化(BEclear)校正方法,并提供了完整的R代码实现。重点解决了β值有界分布与统计模型假设冲突的问题,为甲基化研究的可靠性提供技术保障。

huanghm88的专栏 110

Android DataBinding的基本用法

一、什么是DataBinding Google官方提供的文章 DataBinding顾名思义数据绑定,就是一个数据绑定的库, 二、DataBinding所需的环境 Android Studio:1.3及以上 (更新Android Studio) Gradle版本:1.5及以上 SDK版本:Android 2.1及以上 三、DataBinding的基本用法 (一)开启

cekiasoo的博客 1049

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android DataBinding 的进阶用法

一、前言 上一篇文章中我们讲解了关于 Android DataBinding的基本用法,但是只是讲到关于数据的绑定的使用,对于监听器的使用等都还没有讲解,例如 Button 的 onClick()、onLongClick() 等事件用 DataBinding 改怎么用呢?还有在 Fragment 中怎么使用,用到 ListView 该怎么用等等,那么这一篇就讲解下 Databinding 的进阶

cekiasoo的博客 4167

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android DataBinding基本用法

Learning By Doing 一个Demo掌握DataBinding的基本用法 前言 DataBinding 是Google推出的一个支持库,它的作用是:通过layout文件绑定app逻辑和UI的更新,尽可能地减少编码工作。 说定义似乎有些隐晦,还是通过learning by doing的方式来学习吧。 这篇文章包括以下几方面的内容: 通过layout来绑定app逻辑 layo...

BlueLzy的个人博客 3734

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

DataBinding 进阶用法

DataBinding 进阶用法

Hanyang Li的专栏 696

DataBinding的用法(简洁易懂)

什么是DataBindingAndroid 团队发布的一个数据绑定框架。开发者可以直接在 xml 文件中绑定数据,再也不用findViewById 然后再手工设置数据了。1、打开DataBinding开关 2、编写DataBinding风格的布局文件 3、使用DataBinding1、打开DataBinding开关 在项目的build.gradle里加入下面的代码即可。dataBinding{

秦时明月 619

笔记 dataBinding的一些用法

启用dataBinding //在module的build.gradle中 apply plugin: 'kotlin-kapt'//必须 android{ //AS 4.0 以下, dataBinding{ enabled true } //AS 4.1之后 buildFeatures{ dataBinding true // for view binding : // viewBinding true } } UI改造 <layout> &

qq_32798811的博客 419

DataBinding 高级用法

DataBinding 高级用法

Hanyang Li的专栏 786

Android数据绑定框架DataBinding用法

Android数据绑定框架DataBinding用法 Android的新框架DataBinding给我们带来了很大的方便,以前可能需要在每个Activity里写很多的findViewById,不仅麻烦,还增加了代码的耦合性;而使用DataBinding,就可以抛弃findViewById。Data Binding 解决了 Android UI 编程中的一个痛点,官方原生支持 MVVM 模型可以让我们在不改变既有代码框架的前提下,非常容易地使用这些新特性。其实在此之前,已经有些第三方的框架(RoboAndro

AI吃大瓜的博客 9349

DataBinding的用法介绍

DataBinding的用法介绍 DataBinding是Google 发布的一个数据绑定框架,它能够让开发者减少重复性非常高的代码,如findViewById 这样的操作。其核心优势是解决了数据分解映射到各个view的问题,在MVVM框架中,实现的View和Viewmode的双向数据绑定。 用法案列 1.在Module的build.gradle android模块中添加如下配置 android { dataBinding { enabled = true } } 2.创建数据模型,比如一个简

zhu522959034的博客 1042

DataBinding 基础用法

DataBinding 基础用法

Hanyang Li的专栏 1560

Android开发必看:一文教你完全理解DataBinding框架(下)DataBinding-用法集合

默认的 Binding 生成类规则是:xml 的名称去掉下划线,再首字母大写,最后尾部加个 Binding,比如 activity_main,自动生成的类就是:ActivityMainBinding,那么如果你想自定义这个名字呢?如下:于是自动生成的类就变成了 HeiHei,还可以指定包名:cn.xxx.HeiHei,奇奇怪怪的知识又增加了。上面我们讲解了如何绑定已有的方法,那么如果要绑定的方法是无参数的呢?

2501_90392105的博客 1226

Glide遇到DataBinding的花式用法

前言 主流的图片加载框架越来越多,对应的配置也很麻烦,加载一张图片需要配置一堆参数才能达到需求,使用 Glide + DataBinding + Kotlin扩展简单的几个类,可以完成方便快速的统一进行配置。 1.定义缓存配置项 class DiskCacheOptions private constructor(builder: Builder){ val bitmapPoolSize: Float val memoryCacheSize: Float val diskCach

秦川小将 3857

Android-MVVM-Databinding的原理、用法与封装

说起 DataBinding/ViewBinding 的历史,可谓是一波三折,甚至是比 Dagger/Hilt 还要传奇。说起依赖注入框架 Dagger2/Hilt ,也是比较传奇,刚出来的时候火的一塌糊涂,各种攻略教程,随后发现坑多难以使用,随之逐渐预冷,近几年在 Hilt 发布之后越发的火爆了。

maniuT的博客 1315
上一篇: Android studio - Unable to move Android SDK
下一篇: Android studio 2.0 布局文件Design模式不能用的解决办法
codeaftercode
博客等级 码龄11年 666粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值