[技术贴]HarmonyOS 鸿蒙Next开发一个背单词软件

[技术贴]HarmonyOS 鸿蒙Next开发一个背单词软件 先创建一个空白应用.选择fa,语言为arkts

删除helloword,添加一个多行文本框

添加一个按钮并绑定事件

更改state值为:

@State word_text:string='Hello 你好\nWorld 世界'

定义两个全局变量数组

let Chinese_words:string[]=[]
let English_words:string[]=[]

设置当前页面的显示隐藏state

@State start_layout:Visibility=Visibility.Visible

在按钮事件里绑定分割文本事件

Button('保存单词')
  .onClick(()=>{
    let words:string[]=[]
    let temp_word:string[]
words=this.word_text.split("\n")
    for (let index = 0; index < words.length; index++) {
      const element = words[index];
   temp_word=  element.split(" ")
      Chinese_words[index]=temp_word[1]
      English_words[index]=temp_word[0]
      console.log(Chinese_words[index])
      console.log(English_words[index])
    }
    this.start_layout=Visibility.Hidden
this.record_words_layout=Visibility.Visible
    console.log(words[0])
    console.log(words[1])
  })

隐藏当前页面,显示一个新的页面

this.start_layout=Visibility.Hidden
this.record_words_layout=Visibility.Visible

新页面的主要元素

Column({
space:20}){
  Text(this.chinese_word)
  TextInput()
.onChange((value:string)=>{
    this.user_word=value
  })
  Row({
space:20}){
    Button('提交')

    Button('刷新')

  }


}

设置内边距

.padding(20)

开始页面设置绝对定位放置被新页面挤出去

.position({x:0,y:0})

设置一个全局变量,用于保存随机显示的单词在数组中的位置

let tips_id:number=0

添加提交按钮事件

Button('提交')
  .onClick(()=>{

    if (English_words[tips_id]==this.user_word) {
      this.chinese_word='恭喜,答对了!'
    }else {
      this.chinese_word='正确答案是:'+English_words[tips_id]
    }
  })

添加刷新按钮事件:

  Button('刷新')
    .onClick(()=>{
      tips_id=Math.floor(Math.random() * Chinese_words.length)
      //console.log(console);
      this.chinese_word=Chinese_words[tips_id]
    })

此处tips_id=Math.floor(Math.random() * Chinese_words.length)是用来生成一个从0到单词数组成员数之间的随机数

至此,一个背单词软件就开发好了,你们可以根据自己的需求逐步添加新的功能.

软件的大致流程时,启动,用户输入或粘贴要背的单词,一行一个,每行格式为英文+空格+中文

输入或粘贴好后,点击完成按钮,即可进入背单词页面.

显示中文,输入框输入对应英文单词,点击提交即可显示对错.

点击刷新即可随机切换下一个单词.

2 回复

在HarmonyOS(鸿蒙Next)上开发一个背单词软件,主要涉及以下几个技术点:

  1. UI设计:使用ArkUI框架进行界面设计。ArkUI是鸿蒙系统提供的声明式UI开发框架,支持JS和eTS(扩展TypeScript)语言。可以通过组件化方式构建界面,如使用TextButtonList等组件展示单词、选项和操作按钮。

  2. 数据存储:鸿蒙系统提供了多种数据存储方式。可以使用轻量级数据存储Preferences来保存用户的学习进度和设置。对于单词库,可以使用RDB(关系型数据库)或ObjectBox进行存储和管理。

  3. 网络请求:如果需要从服务器获取单词数据,可以使用鸿蒙的@ohos.net.http模块进行网络请求。支持GET、POST等HTTP方法,可以异步获取数据并更新到本地数据库。

  4. 多媒体支持:如果软件需要发音功能,可以使用鸿蒙的@ohos.multimedia.audio模块进行音频播放。可以通过TTS(文本转语音)技术实现单词发音。

  5. 事件处理:通过ArkUI的事件绑定机制,处理用户交互事件,如点击按钮、选择单词等。可以使用@State@Prop等装饰器管理组件的状态变化。

  6. 多设备协同:鸿蒙系统支持多设备协同,可以通过Distributed Data Management(分布式数据管理)实现不同设备间的数据同步,用户可以在手机、平板、智慧屏等设备上无缝切换学习。

  7. 测试与调试:使用DevEco Studio进行开发和调试。DevEco Studio提供了模拟器和真机调试功能,支持实时预览和性能分析。

开发过程中,可以参考鸿蒙官方文档和示例代码,确保应用符合鸿蒙系统的设计规范和性能要求。

更多关于[技术贴]HarmonyOS 鸿蒙Next开发一个背单词软件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


开发HarmonyOS鸿蒙Next背单词软件,首先需安装DevEco Studio,创建新项目并选择“Ability”模板。利用ArkTS或JS进行UI设计,实现单词展示、发音、测试等功能。通过鸿蒙的分布式能力,支持多设备同步学习数据。利用本地数据库存储单词库,确保离线可用。最后,进行测试与优化,确保应用流畅稳定。发布前,需遵循鸿蒙应用市场规范,完成应用签名与上架流程。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!