快上网建站品牌

13518219792
  • 首页
  • 关于我们
    • 如何选择
    • 选择理由
  • 案例作品
    • 网站建设
    • 优化推广
    • 微信开发
    • 电商托管
  • 服务项目
    • 网站建设
    • 移动端/APP
    • 微信/小程序
    • 技术支持
    • 其它服务
  • 建站知识
    • 成都网站建设
    • 成都做网站
    • 成都网站设计
  • 网站售后
    • 成都网站运营
    • 成都网站维护
    • 成都网站推广
  • 客服中心
  • 全国分站

元数据绑定系列(一):元数据绑定的使用

想了解更多内容,请访问:

和华为官方合作共建的鸿蒙技术社区

https://harmonyos.

阅读本文之前,建议您先阅读 Codelabs:元数据绑定框架,读实之后,跑一下代码。并且带着下面几个问题阅读。之后,我们一起探讨这些问题:

  1. 元数据绑定的使用步骤,注意事项。
  2. 什么是元数据绑定?和数据绑定有什么区别?
  3. 元数据绑定能干什么?

相关推荐:元数据绑定系列(二):元数据绑定进阶

元数据绑定的使用步骤,注意事项。

使用步骤我就不复制粘贴了,说一下注意事项:

1.不要忘记注解开关

 
 
 
 
  1. ohos { 
  2.     compileOptions { 
  3.         annotationEnabled true 
  4.     } 
  5. }

 2.不要忘记初始化

 
 
 
 
  1. @MetaDataApplication(requireData = true, exportData = false) 
  2. public class MyApplication extends AbilityPackage { 
  3.     @Override 
  4.     public void onInitialize() { 
  5.         super.onInitialize(); 
  6.         MetaDataFramework.init(this); 
  7.     }
  8. }

3.Feature中使用 元数据绑定,Json Schema文件必须放在Entry的resource/rawfile.jsonschema路径下。

4.xml中引用元数据有两种方式,别搞混

  •  
 
 
 
 
  1.     name="ClockMetaData"
  2.     schema="com.example.meta-data.alarm"/>

  •  

detail、list_item之类的页面里。待绑定的数据由上一个页面传进来

 
 
 
 
  1.     name="ClockMetaData"
  2.     schema="com.example.meta-data.alarm"/>

5.Json Schema中的id与 xml布局文件中引用元数据 的schema字段相对应。

 
 
 
 
  1. { 
  2.   "id": "com.example.meta-data.alarm", //和xml中的schema对应,必须一样!
  3.   "title": "alarm schema", 
  4.   "$schema": "http://json-schema.org/draft-04/schema#", 
  5.   "description": "alarm description",   
  6.   "type": "object",   
  7.   "properties": { 
  8.   } 
  9. }

6.在xml中不访问metaData中的自定义方法时,可以不指定class;否则必须指定。

 
 
 
 
  1.     name="ClockMetaData"
  2.     class="com.huawei.metadatabindingdemo.alarm.metadata.ClockRowMetaData"/> 

7.java代码中配置元数据(和xml中是等价的)

配置RequestSource

 
 
 
 
  1.     name="ClockMetaData"
  2.     uri="dataability:///com.huawei.metadatabindingdemo.db.AlarmsDataAbility"/>
 
 
 
 
  1. //java代码中的等价配置:
  2. MetaDataRequestInfo request = new MetaDataRequestInfo.Builder()
  3.         .setRequestSource("ClockMetaData",
  4.                 "dataability:///com.huawei.metadatabindingdemo.db.AlarmsDataAbility")

配置MetaDataClass

 
 
 
 
  1.     name="ClockMetaData"
  2.     class="com.huawei.metadatabindingdemo.alarm.metadata.ClockRowMetaData"/>
 
 
 
 
  1. //java代码中的等价配置:
  2. MetaDataRequestInfo request = new MetaDataRequestInfo.Builder()
  3.     .setMetaDataClass("ClockMetaData", ClockRowMetaData.class)

8.待绑定元素必须要有id

9.待绑定字段命名空间要使用metaDataBinding

10.requestBinding()或reBinding()之后才可以调用binding.getLayoutComponent();

什么是元数据绑定?和数据绑定有什么区别?

百度百科中讲:“元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息”

元数据即“描述数据的数据”。那么,我理解的“元数据绑定”应该是通过“元数据”的形式来实现数据绑定。

和“数据绑定”对比

  • 定义上:最大的区别就是绑定的对象不一样,前者绑定“元数据”,后者绑定ActiveData。
  • 使用上:元数据绑定是扩展包引入,数据绑定是sdk内置
  • 功能上:元数据绑定更强大一些。后者只有单向绑定、双向绑定的功能。
  • 内部实现上:元数据绑定基于APT(Annotation Processing Tool)即注解处理器。数据绑定怎么实现的我也不知道,还请高人告知一二!

元数据绑定能干什么?

单向绑定@{}

 
 
 
 
  1.     metaDataBinding:text="@{ClockMetaData.message}"/>

双向绑定@={}

 
 
 
 
  1.     metaDataBinding:text="@={ClockMetaData.message}"/>

绑定自定义函数*{}

 
 
 
 
  1.     metaDataBinding:text="*{ClockMetaData.getTimeZone(@{ClockMetaData.hour})}"/>

绑定资源文件${}

 
 
 
 
  1.     metaDataBinding:image_src="${Media_icon_switch_enabled}"/>

点击事件触发给元数据赋值#{}

 
 
 
 
  1.     metaDataBinding:onClick="#{ClockMetaData.enabled = (@{ClockMetaData.enabled} == 1 ? 0 : 1)}"/>

想了解更多内容,请访问:

和华为官方合作共建的鸿蒙技术社区

https://harmonyos.


文章名称:元数据绑定系列(一):元数据绑定的使用
标题路径:http://gydahua.com/article/cocoiop.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

其他资讯

  • 升级加薪必备!2023年程序员不可错过的12款效率神器
  • Java实现数据库字典库生成(java生成数据库中的字典库)
  • 盒马优选如何加入
  • 避免常见的物联网问题的技巧
  • 阿里云盘到期后数据怎么办?买云服务器要买数据盘吗

行业动态

企业网站建设的重要性!

现在虽然是移动互联网时代,但企业网站依然重要,包含PC站点,移动站。可以说企业网站关系企业的未来发展和前途,尤其对中小企业更是如此,一些中小企业老板,对自己的名片很在乎,因为这是个门面。...

服务项目

  • 网站建设

    查看详情
  • 移动端/APP

    查看详情
  • 微信/小程序

    查看详情
  • 技术支持

    查看详情
  • 其它服务

    查看详情
  • 更多服务项目

    用我们的专业和诚信赢得您的信赖,从PC到移动互联网均有您想要的服务!

    获取更多

联系吧 在百度地图上找到我们

电话:13518219792

如遇占线或暂未接听请拨:136xxx98888

业务咨询 技术咨询 售后服务
网站设计
定制网站设计
网站设计
成都网站设计
响应式网站设计
网站制作
成都网站制作
H5网站制作
四川成都网站制作
定制网站制作
联系我们
电话:13518219792
邮箱:631063699@qq.com
地址:成都青羊区锦天国际1002号
网址:www.gydahua.com
网站建设
眉山网站建设
温江网站建设
手机网站建设
成都网站建设

微信二维码

  • 友情链接
  • 广告T恤定做
  • 成都发光字招牌定制
  • 成都维修发电机
  • 雅安发电机组租用
  • 理县发电机
  • 重庆托管服务器
  • 绵阳服务器托管
  • 网络推广外包
  • zzfdjwx.com
  • 官网SEO排名

Copyright © 2002-2023 www.gydahua.com 快上网建站品牌 QQ:244261566 版权所有 备案号:蜀ICP备19037934号

  • 在线咨询
  • 13518219792
  • 微信二维码

  • 移动版官网