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

网站建设与运营的收入来源十堰网站推广

网站建设与运营的收入来源,十堰网站推广,嘉兴企业网站推广方法,山东青岛网站建设公司哪家专业#xfeff;本教程是跟着 Data Binding Guide学习过程中得出的一些实践经验#xff0c;同时修改了官方教程的一些错误#xff0c;每一个知识点都有对应的源码#xff0c;争取做到实践与理论相结合。Data Binding 解决了 Android UI 编程中的一个痛点#xff0c;官方原生支…本教程是跟着 Data Binding Guide学习过程中得出的一些实践经验同时修改了官方教程的一些错误每一个知识点都有对应的源码争取做到实践与理论相结合。Data Binding 解决了 Android UI 编程中的一个痛点官方原生支持 MVVM 模型可以让我们在不改变既有代码框架的前提下非常容易地使用这些新特性。其实在此之前已经有些第三方的框架可以支持 MVVM 模型无耐由于框架的侵入性太强导致一直没有流行起来。准备Android Studio 更新到 1.3 版本打开 Preferences找到 Appearances Behavior 下的 Updates 选项把 Automatically Check updates for 修改成 Canary Channel。注意Data Binding 是一个 support 包因此与 Android M 没什么关系可以不用下载 Android MNC Preview 的 SDK。新建一个 Project修改 Project 的 build.gradle为 build script 添加一条依赖Gradle 版本为 1.2.3。classpath com.android.tools.build:gradle:1.2.3classpath com.android.databinding:dataBinder:1.0-rc0为用到 Data Binding 的模块添加插件修改对应的 build.gradle。apply plugin: com.android.databinding注意如果 Module 用到的 buildToolsVersion 高于 22.0.1比如 23 rc1那 com.android.databinding:dataBinder 的版本要改为 1.3.0-beta1否则会出现如下错误基础工程创建完成后我们通过一个最简单的例子来说明 Data Binding 的基本用法。布局文件使用 Data Binding 之后xml的布局文件就不再单纯地展示 UI 元素还需要定义 UI 元素用到的变量。所以它的根节点不再是一个 ViewGroup而是变成了 layout并且新增了一个节点 data。....要实现 MVVM 的 ViewModel 就需要把数据与UI进行绑定data 节点就为此提供了一个桥梁我们先在 data 中声明一个 variable这个变量会为 UI 元素提供数据(例如 TextView 的 android:text)然后在 Java 代码中把”后台”数据与这个 variable 进行绑定。如果要用一个表格来展示用户的基本信息用 Data Binding 应该怎么实现呢数据对象添加一个 POJO 类 - User非常简单四个属性以及他们的 getter 和 setter。public class User {private final String firstName;private final String lastName;private String displayName;private int age;public User(String firstName, String lastName) {this.firstName firstName;this.lastName lastName;}public User(String firstName, String lastName, int age) {this(firstName, lastName);this.age age;}public int getAge() {return age;}public String getFirstName() {return firstName;}public String getLastName() {return lastName;}public String getDisplayName() {return firstName lastName;}public boolean isAdult() {return age 18;}}稍后我们会新建一个 User 类型的变量然后把它跟布局文件中声明的变量进行绑定。定义 Variable再回到布局文件在 data 节点中声明一个变量 user。其中 type 属性就是我们在 Java 文件中定义的 User 类。当然data 节点也支持 import所以上面的代码可以换一种形式来写。然后我们刚才在 build.gradle 中添加的那个插件 - com.android.databinding会根据xml文件的名称 Generate 一个继承自 ViewDataBinding 的类。例如这里 xml 的文件名叫 activity_basic.xml那么生成的类就是 ActivityBasicBinding。注意java.lang.* 包中的类会被自动导入可以直接使用例如要定义一个 String 类型的变量绑定 Variable修改 BasicActivity 的 onCreate 方法用 DatabindingUtil.setContentView() 来替换掉 setContentView()然后创建一个 user 对象通过 binding.setUser(user) 与 variable 进行绑定。Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ActivityBasicBinding binding DataBindingUtil.setContentView(this, R.layout.activity_basic);User user new User(fei, Liang);binding.setUser(user);}注意ActivityBasicBinding 类是自动生成的所有的 set 方法也是根据 variable 名称生成的。例如我们定义了两个变量。那么就会生成对应的两个 set 方法。setFirstName(String firstName);setLastName(String lastName);使用 Variable数据与 Variable 绑定之后xml 的 UI 元素就可以直接使用了。android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text{user.lastName} /至此一个简单的数据绑定就完成了可参考完整代码高级用法使用类方法首先为类添加一个静态方法public class MyStringUtils {public static String capitalize(final String word) {if (word.length() 1) {return String.valueOf(word.charAt(0)).toUpperCase() word.substring(1);}return word;}}然后在 xml 的 data 节点中导入使用方法与 Java 语法一样android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text{StringUtils.capitalize(user.firstName)} /类型别名如果我们在 data 节点了导入了两个同名的类怎么办这样一来出现了两个 User 类那 user 变量要用哪一个呢不用担心import 还有一个 alias 属性。Null Coalescing 运算符android:text{user.displayName ?? user.lastName}就等价于android:text{user.displayName ! null ? user.displayName : user.lastName}属性值通过 ${} 可以直接把 Java 中定义的属性值赋值给 xml 属性。android:text{user.lastName}android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:visibility{user.isAdult ? View.VISIBLE : View.GONE}/使用资源数据这个例子官方教程有错误可以参考Android Data Binder 的一个bug完整代码在此。android:padding{large? (int)dimen/largePadding : (int)dimen/smallPadding}android:backgroundandroid:color/blackandroid:textColorandroid:color/whiteandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textstring/hello_world /以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。
http://www.yutouwan.com/news/29755/

相关文章:

  • o2o网站建设特色网站建设误区
  • 上海优化网站价格wordpress阿里云主机
  • 怎么做废品网站最大的开源网站
  • 东莞网站公司哪家好建设网站企业
  • 天津塘沽网站建设广东住房和城乡建设厅网站首页
  • 超链接对做网站重要吗wordpress图片文章
  • 旅游网站建设网站电子商务网站建设与维护读书心得
  • 微信网站如何制作软件延吉网站建设公司哪家好
  • 源码建站教程上海市建设安全协会网站j
  • 网站开发与应用就业方向wordpress设置301重定向
  • 前端个人网站模板什么是网络营销的基础
  • 网站优化体验报告国外网站页面做多大
  • 找人做app网站吗wordpress自定义新页面链接
  • 女与男爱做电影网站免费下载海拉尔网页设计
  • html怎么做移动端网站东莞网站推广策划活动
  • jsp电影网站开发教程站酷网站
  • 去哪儿网站建设需要哪些技术淮南做网站公司
  • 个人域名做邮箱网站建设平台网站
  • 设计网站公司好评y湖南岚鸿ok免备案做网站 可以盈利吗
  • 企业建设网站费用中国设计者联盟官网
  • 东莞模板网站好临安做网站的公司
  • 山东城市建设职业学院教务网站做的好的电商网站项目
  • 朔州seo网站建设株洲有实力关键词优化服务
  • 长春专业做网站的公司排名精准客户资源购买
  • 做公司官方网站手把手做网站
  • 行业网站制作怎么形容网站做的好
  • 便宜电商网站建设怎么样才能做好营销
  • 厚街网站建设费用黔西南州做网站
  • 中国建设银行信用卡网站关键词排名零芯互联关键词
  • 云南建设厅网站资质查询网站上传百度多久收录