0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony开发实例:【 待办事项TodoList】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-22 22:00 次阅读

简介

TodoList应用是基于OpenHarmony SDK开发的安装在润和HiSpark Taurus AI Camera(Hi3516d)开发板标准系统上的应用;应用主要功能是以列表的形式,展示需要完成的日程;通过本demo可以学习到 JS UI 框架List使用;

运行效果

样例效果

样例原理

本demo只有一个list组件组成,初始化数据展示列表,并设置点击事件改变数据状态,重新渲染列表

原理图

工程版本

  • 系统版本/API版本:OpenHarmony SDK API 8
  • IDE版本:DevEco Studio 3.0 Beta3

快速上手

准备硬件环境

[搭建标准系统环境]

准备开发环境

  • 安装最新版[DevEco Studio]。
  • 请参考[配置OpenHarmony SDK],完成DevEco Studio的安装和开发环境配置。

准备工程

鸿蒙开发指导文档:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

搜狗高速浏览器截图20240326151450.png

配置git
  • 提前注册准备码云gitee账号。
  • git工具下载安装
    sudo apt install git
    sudo apt install git-lfs
    
  • 配置git用户信息
    git config --global user.name "yourname"
    git config --global user.email "your-email-address"
    git config --global credential.helper store
    
git下载
git clone https://gitee.com/openharmony-sig/knowledge_demo_smart_home.git --depth=1
工程导入
  • DevEco Studio导入本工程;
    打开DevEco Studio,点击File->Open->下载路径/FA/TodoList
    打开工程导入工程

编译

  • 点击File > Project Structure > Project > Signing Configs界面勾选“ Automatically generate signing ”,等待自动签名完成即可,点击“ OK ”。如下图所示:运行
  • 点击Build->Build Hap/APPs 编译,编译成功生成entry-default-signed.hap

编译编译完成

烧录/安装

  • 识别到设备后点击img,或使用默认快捷键Shift+F10(macOS为Control+R)运行应用。

运行

  • [安装应用]如果IDE没有识别到设备就需要通过命令安装,如下
    打开OpenHarmony SDK路径 toolchains 文件夹下,执行如下hdc_std命令,其中path为hap包所在绝对路径。
    hdc_std install -r pathentry-default-signed.hap//安装的hap包需为xxx-signed.hap,即安装携带签名信息的hap包。
    

工程目录

完整的项目结构目录如下

HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿

├─entrysrcmain
│          │  config.json  //应用配置文件
│          │  
│          ├─js
│          │  └─MainAbility
│          │      │  app.js  // 应用程序入口
│          │      │  
│          │      ├─common   // 公共资源
│          │      │  │  checkbutton.png
│          │      │  │  delete.png
│          │      │  │  done.png
│          │      │  │  head0.png
│          │      │  │  head1.png
│          │      │  │  head2.png
│          │      │  │  head3.png
│          │      │  │  head4.png
│          │      │  │  right.png
│          │      │  │  
│          │      │  └─images
│          │      │          bg-tv.jpg
│          │      │          Wallpaper.png
│          │      │          
│          │      ├─i18n   // 多语言文件
│          │      │      en-US.json
│          │      │      zh-CN.json
│          │      │      
│          │      └─pages
│          │          └─index
│          │                  index.css  //页面样式
│          │                  index.hml  //首页展示
│          │                  index.js   //页面逻辑
│          │                  
│          └─resources
│              ├─base
│              │  ├─element
│              │  │      string.json
│              │  │      
│              │  └─media
│              │          icon.png
│              │          
│              └─rawfile

开发步骤

1. 新建OpenHarmony ETS项目

在DevEco Studio中点击File -> New Project ->[Standard]Empty Ability->Next,Language 选择JS语言,最后点击Finish即创建成功。 image-20211124092813545

2. 编写主页面

image-20211124093106260

2.1页面展示

1)最外层是[div]容器,并在class里面设置背景色为黑色按行布局;

2)再通过[list]包裹[list-item]的 内层div 容器按列布局,并设置点击事件[onclick]

3)[div]容器按列布局依次写入[image] 组件和 div 容器 ;

4)div容器里面又包裹一个div容器和以及[text]组件,且div容器里面也是两个按列布局的[text]

< div class="container" >
    < list class="tag-list" initialindex="{{initialIndex}}" >
        < list-item for="{{taskList}}" class="todo-list-item" focusable="false" >
            < div class="todo-item flex-row" onclick="completeEvent({{$item.id}})" >
                < image class="todo-image" src="{{$item.checkBtn}}" >< /image >
                < div class="todo-text-wrapper" >
                    < div class="todo-name-mark" >
                        < text class="todo-name {{$item.color}}" focusable="false" >{{$item.event}}< /text >
                        < text class="todo-mark {{$item.tag}} {{$item.showTag}}" >< /text >
                    < /div >
                    < text class="todo-time" >{{$item.time}}< /text >
                < /div >
            < /div >
        < /list-item >
    < /list >
< /div >
2.2点击事件

点击某一行后,并根据当前行的状态改变相反的状态

completeEvent(e) {
        for (let i of this.taskList) {
            if (i.id == e) {
                if (i.checkBtn == "/common/done.png") {
                    i.checkBtn = "/common/checkbutton.png";
                    i.showTag = 'show';
                    i.color = 'text-default';
                    i.completeState = false;
                } else {
                    i.checkBtn = "/common/done.png";
                    i.showTag = 'hide';
                    i.color = 'text-gray';
                    i.completeState = true;
                }
                return;
            }
        }
    },

操作体验

列表滑动

样例效果

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    55

    文章

    2112

    浏览量

    42273
  • HarmonyOS
    +关注

    关注

    79

    文章

    1934

    浏览量

    29532
  • OpenHarmony
    +关注

    关注

    24

    文章

    3482

    浏览量

    15423
收藏 人收藏

    评论

    相关推荐

    OpenHarmony南向开发实例:【游戏手柄】

    基于TS扩展的声明式开发范式编程语言,以及OpenHarmony的分布式能力实现的一个手柄游戏。
    的头像 发表于 04-17 10:21 492次阅读
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>开发</b><b class='flag-5'>实例</b>:【游戏手柄】

    HarmonyOS开发案例:【待办列表】

    使用ArkTS声明式语法和基础组件,实现简易待办列表。效果为点击某一事项,替换标签图片、虚化文字。
    的头像 发表于 05-06 15:22 779次阅读
    HarmonyOS<b class='flag-5'>开发</b>案例:【<b class='flag-5'>待办</b>列表】

    鸿蒙入门实战-ArkTS开发

    要渲染的数组为以上的五条待办事项,要渲染的内容是ToDoItem这个自定义组件,也可以是其他内置组件。 图7ForEach基本使用 ToDoItem这个自定义组件中,每一个ToDoItem要显示的文本
    发表于 01-16 17:27

    实用待办事项APP大推荐---《Count2task 记事达人》

    ,单纯化用法,接口简单让人一目了然。此app主要目的是提醒使用者, 什么待办事情即将来临,需要在时间内完成,这样可以进一步规划所剩下的时间与执行的顺序,最特别的是在待办事项日期加了倒数进度BAR~~视觉
    发表于 07-09 15:19

    我应该知道什么才能在fpga领域工作?

    我应该知道什么才能在fpga领域工作?我想得到一份我应该知道和练习的“待办事项”清单谢谢以上来自于谷歌翻译以下为原文what should i know best for working
    发表于 01-11 10:30

    HarmonyOS应用开发-UI设计开发与预览

    (harmony-todo)提示:开发过程完成每一步点击保存之后即可在预览界面实时预览效果3.为index页面(index.hml)添加布局信息3.1添加今日待办事项的列表<
    发表于 09-23 17:51

    OpenHarmony 应用开发快速入门

    本文档适用于OpenHarmony应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用(如下图所示),快速了解工程目录的主要文件,熟悉OpenHarmony应用开发流程。
    发表于 05-06 16:03

    卡片分拣机的制作

     我非常喜欢卡片分拣机的外观和尺寸。我对这个功能也非常满意,但正如我已经说过的那样有一些开放的待办事项
    的头像 发表于 08-26 09:54 3540次阅读
    卡片分拣机的制作

    使用Python开发OpenHarmony设备程序-I2C应用实例分享

    在上一篇帖子《使用Python开发OpenHarmony设备程序(1-GPIO外设控制)》中,已经成功的使用 Python 对 GPIO 上的外设进行了控制。这是非常重要的一个里
    的头像 发表于 12-07 11:34 3258次阅读
    使用Python<b class='flag-5'>开发</b><b class='flag-5'>OpenHarmony</b>设备程序-I2C应用<b class='flag-5'>实例</b>分享

    openharmony开源社区 OpenHarmony开发样例上新了

    openharmony开源社区 OpenHarmony开发样例上新了 OpenHarmony 开源项目是由开放原子开源基金会孵化及运营的开源项目,由开放原子开源基金会
    的头像 发表于 04-25 16:37 2210次阅读

    构建低功耗数字化的Wi-Fi待办事项列表

    电子发烧友网站提供《构建低功耗数字化的Wi-Fi待办事项列表.zip》资料免费下载
    发表于 12-23 16:03 0次下载
    构建低功耗数字化的Wi-Fi<b class='flag-5'>待办事项</b>列表

    何为自主智能体?

    想象一下,你创造了一个人工智能工具,可以为其设定目标,即使是像「创造世界上最好的冰淇淋」这样模糊的目标,它也会拟出一个待办事项列表,执行待办事项,并根据进展来添加新的待办事项。随后它会继续重复这个过程,直至完成目标。
    的头像 发表于 04-28 15:50 1010次阅读
    何为自主智能体?

    10分钟快速掌握OpenHarmony社区贡献新流程

    (以下简称OpenHarmony)社区优化了Issue和PR处理流程,新支持了一系列交互命令和状态标签,用于明确处理阶段和当前处理责任人。社区CI Bot工具还提供了待办事项提醒能力,并能自动处理超期
    的头像 发表于 06-20 21:10 455次阅读

    OpenHarmony上实现待办事项功能

    列表的编辑模式用途十分广泛,常见于待办事项管理、文件管理、备忘录的记录管理等应用场景。
    的头像 发表于 06-25 15:19 501次阅读

    鸿蒙开发实例:【配置OpenHarmony SDK】

    在设置OpenHarmony应用开发环境时,需要开发者在DevEco Studio中配置对应的SDK信息。
    的头像 发表于 04-22 15:24 636次阅读
    鸿蒙<b class='flag-5'>开发</b><b class='flag-5'>实例</b>:【配置<b class='flag-5'>OpenHarmony</b> SDK】