【鸿蒙(HarmonyOS)】List列表、ArkUI资源组数据类型

2023-10-27

一、引言

  • 描述:List列表在移动端设备中最为常见。比如:通讯录、短信、聊天软件等都,都拥有他的身影。
  • 难度:简单
  • 知识点:
  • 1、列表组件的使用
  • 2、认识ArkUI资源组数据类型

二、列表List

1、发现问题(Bug)

根据HarmonyOS官方给出一个样例,我先copy到了我的项目上运行,但在我的系统上却出现了问题,控制台爆了以下日志。

[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]Lifetime: 0.000000s
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]Js-Engine: ark
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]page: pages/Index.js
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]Error message: is not callable
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]Stacktrace:
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]    at Contact (\ets\pages\Index.ets:19:9)
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]    at SimpleContacts (\ets\pages\Index.ets:13:2)
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]    at anonymous (webpack/startup:2:1)
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]    at anonymous (./pages/Index.js:95:11)
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]    at func_main_0 (\ets\pages\Index.ets:1:1)

认真去解读这些日志,发现问题出现在了 key: string = util.generateRandomUUID(true); generateRandomUUID()方法不可调用

在这里插入图片描述

2、完善代码

(1)效果

在这里插入图片描述

(2)代码

class Contact {
  // @ts-ignore
  id: integer;
  name: string;
  // @ts-ignore
  sex: integer;

  // @ts-ignore
  constructor(id:integer, name: string, sex: integer) {
    this.id = id;
    this.name = name;
    this.sex = sex;
  }
}

@Entry
@Component
struct SimpleContacts {
  private contacts = [
    new Contact(1000, '小明', 1),
    new Contact(1001, '小红', 2),
    new Contact(1002, '小歪', 3),
    new Contact(1003, '大红', 2),
  ]

  build() {
    List() {
      ForEach(this.contacts, (item: Contact) => {
        ListItem() {
          Row() {
            if (item.sex == 1) {
              Image($r('app.media.nan'))
                .width(40)
                .height(40)
                .margin(10)
            } else if (item.sex == 2) {
              Image($r('app.media.nv'))
                .width(40)
                .height(40)
                .margin(10)
            } else {
              Image($r('app.media.wai'))
                .width(40)
                .height(40)
                .margin(10)
            }
            Text(item.name).fontSize(20)
          }
          .width('100%')
          .justifyContent(FlexAlign.Start)
        }
      }, item => item.name)
    }.width('100%')
    .backgroundColor('#ffbfbfbf')
    .borderRadius(10)
    .divider({
      strokeWidth: 1,
      startMargin: 60,
      endMargin: 60,
      color: '#ffe9f0f0'
    })
  }
}

三、ArkUI资源组数据类型

最开始使用HarmonyOS,我以为数据类型和一些大众语言是一样的,没想到还是有所差异。于是就去翻了官方文档,具体的数据类型有如下几种:

类型 名称
boolean 布尔型
color 颜色
float 浮点型
intarray 整型数组
integer 整型
pattern 样式
plural 复数形式
strarray 字符串数组
string 字符串

官方给予的建议是通过JSON数据资源的形式来输出数据。本篇博客为了代码展示方便,就通过注解的手段,进行了强制转换。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【鸿蒙(HarmonyOS)】List列表、ArkUI资源组数据类型 的相关文章

  • 使用 pandas 单元格中列表的长度选择行[重复]

    这个问题在这里已经有答案了 我有一张表 df a b c 1 x y x 2 x z c d 3 x t e f g 只是想知道如何使用 c 列的长度选择行 such as df loc len df c gt 1 我知道这是不对的 正确的
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f
  • 查找 C# 列表中重复项的数量

    我在 C 中使用列表 代码如下 测试用例 cs public class TestCase private string scenarioID private string error public string ScenarioID ge
  • 类型错误:“float”对象不可下标

    PizzaChange float input What would you like the new price for all standard pizzas to be PriceList 0 1 2 3 4 5 6 PizzaCha
  • 挑战:优化取消列出[简单]

    因为 SO 最近有点慢 所以我发布了一个简单的问题 如果大鱼们能在这场比赛中留在替补席上并给新秀们一个回应的机会 我将不胜感激 有时我们的对象具有大量的大列表元素 向量 您如何将这个对象 取消列出 到单个向量中 证明你的方法比unlist
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • 添加到列表时有没有办法避免循环?

    我想知道这样的代码 List
  • 如何从namedtuple实例列表创建pandas DataFrame(带有索引或多索引)?

    简单的例子 from collections import namedtuple import pandas Price namedtuple Price ticker date price a Price GE 2010 01 01 30
  • 为什么Python中pop()的大O与pop(0)不同[重复]

    这个问题在这里已经有答案了 他们不应该都是O 1 因为从 Python 列表中的任何位置弹出一个元素涉及销毁该列表并在新的内存位置创建一个元素 蟒蛇的list实现使用动态调整大小的 Carray在引擎盖下 删除元素usually要求您移动后
  • 将元组列表转换为字符串 Python

    例如 我用 python 编写了一个返回列表的函数 1 1 2 2 3 3 但我希望输出为字符串 这样我就可以用另一个字符替换逗号 这样输出就是 1 1 2 2 3 3 有什么简单的方法可以解决这个问题吗 感谢您提前提供任何提示 这看起来像
  • 在 python 上获取大目录文件列表的最佳方法?

    我有一个疯狂的大目录 我需要通过 python 获取文件列表 在代码中我需要获取迭代器 而不是列表 所以这不起作用 os listdir glob glob uses listdir os walk 我找不到任何好的库 帮助 也许是c li
  • 在Python中将列表附加到自身[重复]

    这个问题在这里已经有答案了 我想将一个列表附加到自身 我认为这会起作用 x 1 2 y x extend x print y 我想回来 1 2 1 2 但我得到的只是内置的None 我究竟做错了什么 我正在使用Python v2 6 x e
  • SwiftUI 从一个列表拖动到另一个列表

    我正在尝试在列表之间拖放 我尝试过的 我找到了一个在 UIKIt 中执行此操作并使用 UIViewControllerRepresentable 的解决方案 但这不是我想要的 另一个解决方案是在列表上使用 onDrag 但这在 iPad 上
  • 类型错误:不支持的操作数类型 -:“int”和“list”

    我正在尝试用 python 创建一个程序 它会使用 Zeller 算法告诉你你出生在星期几http en wikipedia org wiki Zeller 27s congruence http en wikipedia org wiki
  • 如何将整个列表分配给 pandas 数据帧的每一行

    我有一个数据框和一个列表 df pd DataFrame A 1 2 3 B 4 5 6 mylist 10 20 30 40 50 我希望有一个列表作为数据帧的每一行中的元素 如果我喜欢的话here https stackoverflow
  • 发布到列表 MVC3

    我试图让我的视图将列表发布回操作 但它始终为空 所以我的模型有一个 WeightEntry 对象列表 运动模型 public class Exercise public List
  • 按升序对数字字符串列表进行排序

    我创建了一个SQLite https en wikipedia org wiki SQLite数据库有一个存储温度值的表 第一次将温度值按升序写入数据库 然后 我将数据库中的温度值读入列表中 然后将该列表添加到组合框中以选择温度 效果很好
  • 对 Python 列表元素进行分组

    我有一个 python 列表 如下所示 my list 25 1 0 65 25 3 0 63 25 2 0 62 50 3 0 65 50 2 0 63 50 1 0 62 我想根据以下规则对它们进行排序 1 gt 0 65 0 62 l
  • 获取列表中倒数第二个元素[重复]

    这个问题在这里已经有答案了 我可以通过以下方式获取列表的倒数第二个元素 gt gt gt lst a b c d e f gt gt gt print lst len lst 2 e 有没有比使用更好的方法print lst len lst

随机推荐

  • IDEA怎么查看现在的项目使用的JDK版本?

    左键file
  • 史上最细,自动化测试-logging日志采集详细实战(二)

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • java对比两个对象的字段值并记录输出(支持嵌套对象)

    java对比两个对象的字段值 支持嵌套对象 比较两个对象的字段属性值 对比工具类 数据载体对象 注解 比较两个对象的字段属性值 equals的场景可以比较两个对象 但是不能知道具体是那个字段不一致 基于这种场景有了今天要说的这个需求 我这里
  • Hive的安装部署与环境变量等配置(三种安装部署方式)

    三种安装方式 推荐第三种 博文底部附安装包 驱动包 1 Derby版Hive直接使用 不推荐 默认使用derby 数据库 维护元数据 缺点 此版本 在每个节点自己独立维护一个derby数据库 即在节点1添加了数据库 则在节点2无法查看 多个
  • 家用智能摄像头横评:小米、华为海雀、TP-LINK、智汀

    目前智能家居市场上的智能摄像头琳琅满目 正常用户想选购的时候不知哪个好 网上搜来看可谓眼花缭乱 不知道怎么选 那今天就跟着小编的亲测一起来感受一下吧 以小米 华为海雀 TP LINK 智汀为例 可能看完你就知道怎么选了 首先是摄像的画质 可
  • Docker consul 容器服务自动发现和更新

    目录 一 什么是服务注册与发现 二 Docker consul集群 1 Docker consul consul提供的一些关键特性 2 registrator 3 Consul template 三 Docker consul实现过程 以配
  • springboot 使用 CorsConfig 和注解,解决跨域问题

    所有文章优先发布在个人博客上面 后面修改可能忘记同步到CSDN 给你带来麻烦抱歉 本篇文章个人博客位置 https www xdx97 com article 654723079183794176 目的 解决springboot跨域请求的问
  • 前端网页设计期末大作业-写真工作室网站(资源链接在文末)

    前端网页设计期末大作业 写真工作室网站 有导航栏 轮播图 链接点击正常 是本人的一个网页设计期末大作业 信息请看请看如下截图 资源下载链接 https download csdn net download weixin 43474701 8
  • ranger控制数据访问权限

    ranger的特点就是 自己可以帮你去干你不能干的事情 比如你这个用户没有hdfs某个目录下某个文件的读权限 但是你在ranger里面配了可以访问这个文件 你访问时ranger就帮你拿回来给你 索引 一 hbase权限 二 hdfs权限 三
  • 微信小程序——支付

    小程序支付是专门被定义使用在小程序中的支付产品 目前在小程序中能且只能使用小程序支付的方式来唤起微信支付 先判断协议字段返回 再判断业务返回 最后判断交易状态 除被扫支付场景以外 商户系统先调用统一下单接口在微信支付服务后台生成预支付交易单
  • TypeError: can‘t convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory...

    问题描述 如题目所示 之所以报这个错呢主要还是tensor 和 numpy 的转换问题 为什么写这个题解 也是因为报错调试花了一点时间 参考了许多前辈的经验 这里做一个梳理 备查 百度到的答案 有的对版本有一些操作 有的直接对源码进行了修改
  • 使用neo4j-admin导入csv文件

    导入csv文件的最大麻烦还是csv文件格式问题 以及数据问题 1 首先将准备好的csv文件用笔记本打开 格式另存为utf 8形式 财务负责人表 公司表 财务负责人表与公司表关系 导入前要将已有的默认数据库删掉 也就是配置文件中默认启动的数据
  • iOS学习之iOS沙盒(sandbox)机制和文件操作(二)

    接上篇 iOS学习之iOS沙盒 sandbox 机制和文件操作 一 我们看看如何获取应用程序沙盒目录 包括真机的沙盒的目录 1 获取程序的Home目录 cpp view plain copy NSString homeDirectory N
  • MES系统是什么?一篇文章带你认识MES系统

    什么是MES系统 MES即制造执行系统 Manufacturing Execution System 它是一套面向制造企业车间执行层的生产信息化管理系统 可以为企业提供包括制造数据管理 计划排程管理 生产调度管理 库存管理 质量管理 人力资
  • JAVASCRIPT实现简单计算器

  • Quartus II添加器件库方法

    近期陆续有客户 使用MAX II这款芯片 我当时安装quartus为了尽量小 便没有安装 只安装了cyclone器件 今天添加库的过程 记录一下 以Quartus ii 13 0sp1为例 添加MAX II CPLD到软件支持列表中 以 管
  • Java经典面试题 带答案(三)

    Java经典面试题 带答案 三 1 面向对象的特征有哪些方面 答 面向对象的特征主要有以下几个方面 抽象 抽象是将一类对象的共同特征总结出来构造类的过程 包括数据抽象和行为抽象 两方面 抽象只关注对象有哪些属性和行为 并不关注这些行为的细节
  • 机甲旋风等待服务器响应,机甲旋风7月27日服务器公告 登月传说

    你知道7月20日是什么日子吗 你知道阿姆斯特朗是谁吗 没错 他就是第一个登上月球的人 而1969年7月20 正是他登上月球的那一天 为了纪念人类登月 联盟里面发生了好多事情 挑战月球的BOSS可以得到很厉害的徽章 马丁博士似乎也为登月准备了
  • matplotlib之pyplot模块之饼图(pie():基础参数,返回值)

    pie 函数概述 pie 函数用于绘制饼图 pie 的函数签名为matplotlib pyplot pie x explode None labels None colors None autopct None pctdistance 0
  • 【鸿蒙(HarmonyOS)】List列表、ArkUI资源组数据类型

    一 引言 描述 List列表在移动端设备中最为常见 比如 通讯录 短信 聊天软件等都 都拥有他的身影 难度 简单 知识点 1 列表组件的使用 2 认识ArkUI资源组数据类型 二 列表List 1 发现问题 Bug 根据HarmonyOS官