当前位置: 首页 > news >正文

网站开发常用开发语言外链代发软件

网站开发常用开发语言,外链代发软件,沈阳思路网站制作,免费建站宝盒目录 一、简介二、使用2.1 使用环境2.2 xml文件绑定数据2.3 数据绑定的对象2.3.1 object2.3.2 ObseravbleField2.3.3 ObseravbleCollection 2.4 绑定数据 三、应用场景 一、简介 DataBinding是谷歌15年推出的library,DataBinding支持双向绑定#xff0c;能大大减少绑定app逻辑… 目录 一、简介二、使用2.1 使用环境2.2 xml文件绑定数据2.3 数据绑定的对象2.3.1 object2.3.2 ObseravbleField2.3.3 ObseravbleCollection 2.4 绑定数据 三、应用场景 一、简介 DataBinding是谷歌15年推出的library,DataBinding支持双向绑定能大大减少绑定app逻辑与layout文件的“胶水代码”例如setText、findViewById等代码。双向绑定指的是将数据与界面绑定起来当数据发生变化时会体现在界面上反过来界面的内容变化也会同步更新到数据上使用DataBinding能轻松实现MVVM模式。 DataBinding的由来 注意: 1.DataBinding只是工具而已并不单独属于某一个模式大部分情况下MVVM都是使用DataBinding小部分情况下MVP情况下也可以使用DataBinding。 2.MVVM模式的VM和JetPack的ViewModel组件库是两回事。 二、使用 2.1 使用环境 首先需要在build.gradle下启用dataBinding android {compileSdk 34defaultConfig {......minSdk 29//启用viewBindingviewBinding{enabled true}//启用dataBinding//第一种方式dataBinding {enabled true}//第二种方式dataBinding.enabledtrue......2.2 xml文件绑定数据 新建布局文件 右击出现提示点击show Context Actions 转换成由DataBinding管理的布局文件 进入布局文件将布局和User关联起来View---Model ?xml version1.0 encodingutf-8?!--layout是由DataBinding管理了我们整个布局 -- layout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsdata!-- 不是通过反射--!-- 生成setuser()函数--variablenameusertypecom.myStudy.jetPackTest.dataBindingTest.User //data!-- 上面的内容是DataBinding内部用的安卓View体系不认识--!-- 安卓 View体系的下面的所有内容会给安卓绘制--LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationvertical!-- View————Model --TextViewandroid:idid/dataBinding1android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text{user.name}android:textSize20sp /TextViewandroid:idid/dataBinding2android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text{user.password}android:textSize20sp //LinearLayout /layout其中变量user作为被绑定的数据type指向对应类 variablenameusertypecom.myStudy.jetPackTest.dataBindingTest.User /属性值通过{}这样的语法表达方式和数据user实现绑定本例中将TextView的text值设置为user对象的name了 android:text{user.name}2.3 数据绑定的对象 DataBinding中有三种不同的数据object、field、collection 2.3.1 object 创建一个Model User 别忘了继承BaseObservable 和注解,BR处可能会报错需要接下来和布局绑定在一起make编译一下方可正常运行。 Observable是提供添加移除监听的一个java接口DataBinding基于此接口提供了一个基础类BaseObserable,可以这样使用它通过Bindale注解绑定一个getter当属性发生改变在setter中发出通知这样就实现了响应 public class User extends BaseObservable {private String name;private String password;public User(String name, String password) {this.name name;this.password password;}Bindable //BR里面标记生成 name数值标记public String getName() {return name;}Bindable //BR里面标记生成 password数值标记public String getPassword() {return password;}public void setName(String name) {this.name name;notifyPropertyChanged(BR.name);//APT技术 BR文件}public void setPassword(String password) {this.password password;notifyPropertyChanged(BR.password);//APT技术 BR文件} }2.3.2 ObseravbleField public static class User2 {public final ObservableFieldString firstName new ObservableField();public final ObservableFieldString lastName new ObservableField();public final ObservableInt age new ObservableInt(); }2.3.3 ObseravbleCollection ObservableArrayMapString, Object user new ObservableArrayMap(); user.put(Name, Google); user.put(password, 123456); user.put(age, 17);对应绑定的xml: dataimport typeandroid.databinding.ObservableMap/variable nameuser typeObservableMapString, Object/ /data … TextViewandroid:text{user[lastName]}android:layout_widthwrap_contentandroid:layout_heightwrap_content/ TextViewandroid:text{String.valueOf(1 (Integer)user[age])}android:layout_widthwrap_contentandroid:layout_heightwrap_content/ObservableArrayListObject user new ObservableArrayList(); user.add(Google); user.add(123456); user.add(17);对应绑定的xml: dataimport typeandroid.databinding.ObservableList/import typecom.example.my.app.Fields/variable nameuser typeObservableListObject/ /data … TextViewandroid:text{user[Fields.LAST_NAME]}android:layout_widthwrap_contentandroid:layout_heightwrap_content/ TextViewandroid:text{String.valueOf(1 (Integer)user[Fields.AGE])}android:layout_widthwrap_contentandroid:layout_heightwrap_content/2.4 绑定数据 创建一个Activity让Use数据驱动UI,Model----View public class DataBindingTestActivity extends AppCompatActivity {User user;Overrideprotected void onCreate(Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);DatabindingtestBinding binding DataBindingUtil.setContentView(this, R.layout.databindingtest);user new User(name, password);binding.setUser(user);//必须要建立联系否则没有任何效果//Model----Viewnew Thread(new Runnable() {Overridepublic void run() {for (int i 0; i 10; i) {try {Thread.sleep(1000);user.setName(user.getName() i);user.setPassword(user.getPassword() i);} catch (InterruptedException e) {throw new RuntimeException(e);}}}}).start();} }测试一下 与Activity绑定xml对比整体示意图 上述内容为DataBinding双向绑定的基础。DataBinding较为繁重普通应用开发完全可以用ViewBinding替代。 DataBinding的优缺点 优点 简化开发DataBinding 可以帮助开发者简化数据与 UI 元素之间的绑定减少手动更新 UI 的工作提高开发效率。减少重复代码通过 DataBinding可以避免编写大量的重复代码来手动更新 UI 元素减少代码量提高代码质量。实时更新DataBinding 可以实现数据与 UI 元素的实时绑定当数据发生变化时UI 会自动更新使得用户界面能够及时展示最新的数据。解耦视图和数据DataBinding 有助于实现视图和数据的解耦使得 UI 层和数据模型层之间的关系更加清晰便于维护和扩展。提高可维护性通过使用 DataBinding可以使代码结构更清晰逻辑更简洁降低代码的耦合度提高代码的可维护性。 缺点学习曲线对于初学者来说DataBinding 技术可能需要一定的学习成本需要掌握相关的概念和用法可能会增加开发的复杂度。性能消耗在某些情况下使用 DataBinding 可能会引入一定的性能消耗特别是在大规模数据绑定和频繁更新 UI 的情况下可能会影响应用的性能。调试困难由于 DataBinding 技术会将数据绑定到 UI 上有时候会使得调试变得困难特别是在数据与 UI 不一致的情况下可能需要花费更多的时间来排查问题。不适用于所有场景DataBinding 并不适用于所有场景有些场景下可能并不需要使用 DataBinding 技术过度使用可能会增加代码复杂度。 三、应用场景 实时数据展示在需要实时展示数据变化的场景下DataBinding 可以帮助实现数据与 UI 的实时绑定使得数据的变化能够即时反映在界面上。例如在股票行情展示、即时通讯应用等场景中都可以应用 DataBinding 技术。 MVVM 架构DataBinding 技术通常与 MVVMModel-View-ViewModel架构一起使用MVVM 架构通过 DataBinding 实现了视图与数据模型的解耦使得界面逻辑更清晰易于维护和扩展。 参考链接 DataBinding使用全面详解 Android开发提升效率之DataBinding——基本使用
http://www.dnsts.com.cn/news/235699.html

相关文章:

  • 自己做网站类型网站建设平台源码
  • 代做课件的网站广州机械网站建设外包
  • 做网站 卖会员本地网站服务器搭建
  • 温州快建网站建设如何建立免费网站的步骤
  • 网站集约化建设的意义出售淘宝店铺的平台
  • 安徽住房与城乡建设部网站做一个网站需要哪些
  • 杭州设计网站的公司网站留言自动短信提醒
  • 北京制卡厂家做卡公司北京制卡网站_北京制卡_北京 去114网掘金网站建设
  • 免费速建网站内蒙古网站建设电话
  • 网站后台路径搭建平台的目的和意义是什么
  • 做淘宝网站需要多少钱安徽建设厅官方网站
  • 百度站长工具使用方法叙述一个网站的建设过程
  • 同和网站建设wordpress版型
  • 烟台做网站wordpress站点实例
  • 手机网站开发需要哪些人网站服务器怎么维护
  • 成都建设网站那家好互联网广告代理商
  • 哪里有网站推广软件个人网站备案注销
  • 医院 网站后台管理市场营销活动策划方案
  • 网上做设计的网站南昌租房网
  • 南京城乡建设局网站外贸平台推广公司
  • 重庆建设工程监督管理局网站淘宝怎么做引流和推广
  • 网站规划与设计大作业网销是什么该怎么做
  • 购买网站空间后怎么做网站中文通用网址域名
  • 企业网站群建设dede如何手机网站和电脑网站的数据同步更新
  • 网站页面怎么做地图公司简介模板免费文字版
  • 哪些网站是php免费云服务器官网
  • 网站怎么做图片栏目企业微信crm
  • 为什么企业建设银行网站打不开昆山网络推广公司
  • 建立自己网站我想给企业做网站怎么做
  • 免费网站推广平台wordpress mysql数据库备份