鸿蒙实战:页面跳转传参

打印 上一主题 下一主题

主题 972|帖子 972|积分 2916

1. 实战概述



  • 本次实战,学习如何在HarmonyOS应用中实现页面间参数传递。起首创建项目,编写首页代码,实现按钮跳转至第二个页面并传递参数。在第二个页面中接收并表现这些参数,末了测试应用以验证功能。
2. 实现步骤

2.1 创建鸿蒙项目



  • 创建项目 - PassParams

2.2 编写首页代码



  • 首页 - Index.ets

  1. // 导入router模块
  2. import router from '@ohos.router'
  3. @Entry
  4. @Component
  5. struct Index {
  6.   @State message: string = 'Index页面';
  7.   build() {
  8.     Row() {
  9.       Column() {
  10.         Text(this.message)
  11.           .fontSize(40)
  12.           .fontWeight(FontWeight.Bold)
  13.           .foregroundColor(Color.Yellow)
  14.           .margin('10')
  15.         // 添加按钮,触发跳转
  16.         Button('跳转')
  17.           .fontSize(40)
  18.           .width(150)
  19.           .height(70)
  20.           .backgroundColor('#44dd22')
  21.           .foregroundColor('#ffffff')
  22.           .onClick(() => {
  23.             router.pushUrl({
  24.               url: 'pages/Second',
  25.               params: {
  26.                 id: '20240101',
  27.                 name: '陈燕文',
  28.                 gender: '女',
  29.                 age: 19,
  30.                 major: '软件技术专业',
  31.                 class: '2024软件1班',
  32.                 telephone: '15893451170'
  33.               }
  34.             })
  35.           })
  36.       }
  37.       .width('100%')
  38.     }
  39.     .height('100%')
  40.     .backgroundColor('#00662F')
  41.   }
  42. }
复制代码


  • 代码说明:这段代码是一个使用HarmonyOS开辟框架的组件,用于创建一个名为Index的页面。页面中包罗一个文本消息和一个按钮。点击按钮时,会触发页面跳转至名为Second的页面,并传递一系列参数。页面的背景颜色设置为深绿色(#00662F)。
2.3 新建第二个页面



  • 创建页面 - Second.ets

  1. // 导入router模块
  2. import router from '@ohos.router'
  3. @Entry
  4. @Component
  5. struct Second {
  6.   @State message: string = 'Second页面';
  7.   @State student: string = '';
  8.   aboutToAppear(): void {
  9.     let record = router.getParams() as Record<string, string>;
  10.     this.student = '学号:' + record['id'] + '\n'
  11.       + '姓名:' + record['name'] + '\n'
  12.       + '性别:' + record['gender'] + '\n'
  13.       + '年龄:' + record['age'] + '\n'
  14.       + '专业:' + record['major'] + '\n'
  15.       + '班级:' + record['class'] + '\n'
  16.       + '手机:' + record['telephone'];
  17.   }
  18.   build() {
  19.     Row() {
  20.       Column() {
  21.         Text(this.message)
  22.           .fontSize(40)
  23.           .fontWeight(FontWeight.Bold)
  24.           .foregroundColor(Color.Yellow)
  25.           .margin('10')
  26.         // 显示传参的内容
  27.         Text(this.student)
  28.           .fontSize(30)
  29.           .fontColor(Color.Red)
  30.           .margin('20')
  31.         // 添加按钮,触发返回
  32.         Button('返回')
  33.           .fontSize(40)
  34.           .width(150)
  35.           .height(70)
  36.           .backgroundColor('#44dd22')
  37.           .foregroundColor('#ffffff')
  38.           .onClick(() => {
  39.             router.back();
  40.           })
  41.       }
  42.       .width('100%')
  43.     }
  44.     .height('100%')
  45.     .backgroundColor('#00008B')
  46.   }
  47. }
复制代码


  • 代码说明:这段代码定义了一个名为Second的HarmonyOS页面组件,它接收从Index页面传递的参数,并在页面上表现这些参数。页面背景为深蓝色(#00008B),包罗一个返回按钮,点击后可返回上一页。
3. 测试结果



  • 启动应用,表现首页

  • 单击【跳转】按钮,跳转到第二个页面,而且传递了一组参数,第二个页面获取参数并表现

  • 单击【返回】按钮,返回首页

  • 操作录屏演示

4. 实战总结



  • 通过本次实战,我们学习了在HarmonyOS中创建项目、编写页面代码以及实现页面间参数传递。我们掌握了如何使用router模块进行页面跳转和参数接收,以及如何结构和表现页面内容。通过现实操作,加深了对HarmonyOS开辟流程的理解。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

冬雨财经

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表