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

义乌网站建设工作室用帝国cms做企业网站

义乌网站建设工作室,用帝国cms做企业网站,wordpress媒体库缩略图不现实,做公司网站主要需要什么科目不经一番寒彻骨#xff0c;怎得梅花扑鼻香 一#xff0c;定义 DataBinding, 又名数据绑定#xff0c;是Android开发中非常重要的基础技术#xff0c;它可以将UI组件和数据模型连接起来#xff0c;使得在数据模型发生变化时#xff0c;UI组件自动更新。是 MVVM 模式在 An…不经一番寒彻骨怎得梅花扑鼻香 一定义 DataBinding, 又名数据绑定是Android开发中非常重要的基础技术它可以将UI组件和数据模型连接起来使得在数据模型发生变化时UI组件自动更新。是 MVVM 模式在 Android 上的一种实现用于降低布局和逻辑的耦合性使代码逻辑更加清晰。MVVM 相对于 MVP其实就是将 Presenter 层替换成了 ViewModel 层。DataBinding 能够省去我们一直以来的 findViewById() 步骤大量减少 Activity 内的代码数据能够单向或双向绑定到 layout 文件中有助于防止内存泄漏而且能自动进行空检测以避免空指针异常 二基本使用 1在app的build.gradle中 开启databinding defaultConfig {applicationId com.yuanzhen.lifecycledemominSdk 24targetSdk 33versionCode 1versionName 1.0testInstrumentationRunner androidx.test.runner.AndroidJUnitRunner//使用databindingdataBinding{enabled true} } 2在布局文件XML中选中根布局ALT回车 选择Convert to data binding layout 会自动转换为 DataBinding 需要的布局规则 ?xml version1.0 encodingutf-8? layout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsdata/dataRelativeLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityTextViewandroid:idid/txt_nameandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentapp:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparent /TextViewandroid:idid/txt_ageandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentapp:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparentandroid:layout_belowid/txt_name//RelativeLayout /layout 3 创建数据bean public class YuanZhen {public YuanZhen(String name, int age) {this.name name;this.age age;}private String name;private int age;public void setName(String name) {this.name name;}public void setAge(int age) {this.age age;}public String getName() {return name;}public int getAge() {return age;} } 4在XML中设置创建的数据bean ?xml version1.0 encodingutf-8? layout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsdataimport typecom.yuanzhen.lifecycledemo.databing.YuanZhen/variablenameyuanzhentypeYuanZhen//dataRelativeLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityTextViewandroid:idid/txt_nameandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text{yuanzhen.name}app:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparent /TextViewandroid:idid/txt_ageandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text{String.valueOf(yuanzhen.age)}app:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparentandroid:layout_belowid/txt_name//RelativeLayout /layout 注意这里的int需要转换为String  5在Activity中用DatabindingUtil 替换原来的setContentView创建数据源绑定databinding public class MainActivity extends AppCompatActivity {private ActivityMainBinding dataBinding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);dataBinding DataBindingUtil.setContentView(this, R.layout.activity_main);YuanZhen yuanZhen new YuanZhen(袁震,18);dataBinding.setYuanzhen(yuanZhen);}} 运行 三特殊用法 1,在上面我们使用的ActivityMainBinding 是自动生成的这里我们可以自定义它的名称MyDataBing data classMyDataBingimport typecom.yuanzhen.lifecycledemo.databing.YuanZhen/variablenameyuanzhentypeYuanZhen/ /data public class MainActivity extends AppCompatActivity {private MyDataBing dataBinding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);dataBinding DataBindingUtil.setContentView(this, R.layout.activity_main);YuanZhen yuanZhen new YuanZhen(袁震,18);dataBinding.setYuanzhen(yuanZhen);} } 2,我们可以通过databinding获取在XML里面赋值的组件 public class MainActivity extends AppCompatActivity {private MyDataBing dataBinding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);dataBinding DataBindingUtil.setContentView(this, R.layout.activity_main);YuanZhen yuanZhen new YuanZhen(袁震,18);dataBinding.setYuanzhen(yuanZhen);dataBinding.txtName.setText(袁震1111);dataBinding.txtAge.setText(28);} } 注意这里赋值了并不会刷新 四单向数据绑定 实现数据变化自动驱动 UI 刷新的方式有三种BaseObservable、ObservableField、ObservableCollection BaseObservable是一个纯净的 ViewModel 类被更新后并不会让 UI 自动更新。而数据绑定后我们自然会希望数据变更后 UI 会即时刷新Observable 就是为此而生的概念 BaseObservable 提供了 notifyChange() 和 notifyPropertyChanged() 两个方法前者会刷新所有的值域后者则只更新对应 BR 的 flag该 BR 的生成通过注释 Bindable 生成可以通过 BR notify 特定属性关联的视图 下面来看下使用案例 1将数据Bean继承BaseObservable 并实现刷新方法 public class YuanZhen extends BaseObservable {public YuanZhen(String name, int age) {this.name name;this.age age;}private String name;private int age;public void setName(String name) {this.name name;notifyPropertyChanged(BR.name);}public void setAge(int age) {this.age age;notifyPropertyChanged(BR.age);}Bindablepublic String getName() {return name;}Bindablepublic int getAge() {return age;} } 2在Activity中每隔1s改变一下name和age public class MainActivity extends AppCompatActivity {private MyDataBing dataBinding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);dataBinding DataBindingUtil.setContentView(this, R.layout.activity_main);YuanZhen yuanZhen new YuanZhen(袁震,18);dataBinding.setYuanzhen(yuanZhen);new Thread(new Runnable() {Overridepublic void run() {for (int i 0; i 10; i) {try {Thread.sleep(1000);yuanZhen.setName(yuanZhen.getName()i);// view.setText(text);yuanZhen.setAge(18i);} catch (InterruptedException e) {e.printStackTrace();}}}}).start();} } 运行结果 五双向数据绑定 双向绑定的意思即为当数据改变时同时使视图刷新而视图改变时也可以同时改变数据 我们在xml里面增加一个EditText这个EditText绑定了yuanzhen.name ?xml version1.0 encodingutf-8? layout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsdata classMyDataBingimport typecom.yuanzhen.lifecycledemo.databing.YuanZhen/variablenameyuanzhentypeYuanZhen//dataRelativeLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityTextViewandroid:idid/txt_nameandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text{yuanzhen.name}android:textSize40spapp:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparent /TextViewandroid:idid/txt_ageandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textSize40spandroid:text{String.valueOf(yuanzhen.age)}app:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparentandroid:layout_belowid/txt_name/EditTextandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_belowid/txt_ageandroid:textSize40spandroid:text{yuanzhen.name}//RelativeLayout /layout 其余代码还是保持不变让我们来看运行结果 六运算符 DataBinding 支持在布局文件中使用以下运算符、表达式和关键字* 算术 - / \* % * 字符串合并 * 逻辑 || * 二元 | ^ * 一元 - ! ~ * 移位 * 比较 * Instanceof * Grouping () * character, String, numeric, null * Cast * 方法调用 * Field 访问 * Array 访问 \[\] * 三元 ?:目前不支持以下操作* this * super * new * 显示泛型调用
http://www.hkea.cn/news/14524145/

相关文章:

  • 淘宝联盟怎么样做网站威海做企业网站
  • 东莞网页设计哪家设计网站好?wordpress获取当前文章名称
  • 网站运营这么做电脑平面设计主要做什么
  • 东莞网站空间网站虚拟空间过期
  • 微信企业网站 源码下载做影片的网站描述
  • 建站之家官网wordpress最近更新模块
  • 网站关键词查询网站建设jz518
  • 做网站有钱在线网站建设平台哪个好
  • 制造企业网站的建设目标深圳平台推广
  • 建视频网站系统吗商城版免费网站制作
  • 网站有权重可以对title做更改国内十大软件外包公司
  • 湛江网站建设方案托管网站建设公司网页
  • 上海网站建设求职简历广西建设网官方网桂建云
  • seo可以提升企业网站的h5编辑器有哪些软件
  • 网站建设的需求方案建行官网
  • python怎么做抢课网站连云港网站建设案例
  • 机加工外贸网站c网站制作
  • diy网站开发公司湖南邵阳调整多个风险区
  • 网站开发服务费算无形资产吗企业工商注册查询
  • 福建省建设厅网站人员沂南建设局网站
  • 什么网站收录快城厢区住房和城乡建设局网站
  • 网站宣传的方法网站搭建与服务器配置
  • 灯塔网站建设黑马程序员视频库
  • pc开奖网站建设手游源码网
  • ktv在那些网站做宣传效果好上海网站编辑招聘
  • 做肯德基玻璃门网站供灯放生网站开发
  • 网站建设与维护流程图网络系统设计与管理
  • 微信网站开发教程视频教程wordpress+andriod
  • 宜昌住房和城乡建设厅网站广西桂平建设局网站
  • 好的网站建设技术好项目寻找个人投资