HarmonyOS鸿蒙开发之07 编程实现页面跳转(教程含源码)
2023-09-11 14:18:48 时间
实战需求
本期,我们来从零开始通过代码实现在第一个页面点击按钮跳转到第二个页面。
前期文章
- 原创 HarmonyOS 鸿蒙入门教程之01 基础环境和开发工具 (教程含源码)
- 原创 HarmonyOS 鸿蒙开发之02开发工具安装
- 原创 HarmonyOS 鸿蒙入门教程之03 运行开发工具完成基础配置DevEco Studio(教程含源码)
- 原创 HarmonyOS鸿蒙开发之04 运行第一个hello world (教程含源码)
- 原创 HarmonyOS鸿蒙开发之05 运行第一个页面 (教程含源码)
- 原创 HarmonyOS鸿蒙开发之06 通过代码创建页面 Feature Ability(教程含源码)
实现页面跳转
1、重写MainAbilitySlice.java 的onStart()函数
打开第一个页面的“MainAbilitySlice.java”文件,重写onStart()方法添加按钮的响应逻辑,实现点击按钮跳转到下一页,示例代码如下:
package com.example.myapplication.slice;
import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.aafwk.content.Operation;
import ohos.agp.components.*;
public class MainAbilitySlice extends AbilitySlice {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_main_layout);
Button button = (Button) findComponentById(ResourceTable.Id_button);
if (button != null) {
// 为按钮设置点击回调
button.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Intent secondIntent = new Intent();
// 指定待启动FA的bundleName和abilityName
Operation operation = new Intent.OperationBuilder()
.withDeviceId("")
.withBundleName("com.example.myapplication")
.withAbilityName("com.example.myapplication.SecondAbility")
.build();
secondIntent.setOperation(operation);
startAbility(secondIntent); // 通过AbilitySlice的startAbility接口实现启动另一个页面
}
});
}
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
注意事项,请将com.example.myapplication替换成您的项目名称
.withBundleName("com.example.myapplication")
.withAbilityName("com.example.myapplication.SecondAbility")
2、再次运行项目,效果如图所示
更多技术交流请加入QQ群
群名称:harmonyos鸿蒙技术交流
群 号:856567895
相关文章
- Firefly——dbentrust 示例DEMO (源码+教程)
- 【IOS-COCOS2D游戏开发之二】COCOS2D 游戏开发资源贴(教程以及源码)
- Apache Spark源码走读(十一)浅谈mllib中线性回归的算法实现&Spark MLLib中拟牛顿法L-BFGS的源码实现
- 《Android源码设计模式》--工厂方法模式
- MFC Windows 程序设计[175]之多样的按钮组(附源码)
- 推荐一种非常好的新版DSP库源码移植方式,含V7,V6和V5的IAR以及MDK5的AC5和AC6版本
- Android App签名(证书)校验过程源码分析
- Qt信号槽源码剖析
- 【Linux 内核】Linux 内核源码目录说明 ① ( arch 目录 | block 目录 | certs 目录 | crypto 目录 | Documentation 目录 )
- 安卓系统源码编译系列(六)——单独编译内置浏览器WebView教程
- VC++通过修改manifest文件来解决Vista/Win7/Win8下应用程序兼容性问题(附源码)
- Complex Multiplier IP 使用教程(源码)
- 【YOLOv7】Python基于YOLOv7的人员跌倒检测系统(源码&部署教程&数据集)
- Python基于OpenCV的人脸表情识别系统[源码&部署教程]
- [YOLOv7]基于YOLOv7的食物卡路里检测系统(源码&部署教程&数据集)
- Python基于RCNN&CTC的视频字幕识别系统(源码&部署教程)
- [YOLOv7]基于YOLOv7的反光衣检测系统(源码&部署教程&数据集)
- [YOLOv7]基于YOLO&Deepsort的交通车流量统计系统(源码&部署教程)
- Python基于OpenCV高空抛物检测系统[完整源码&部署教程]
- Python基于OpenCV的人脸集合相似度检测系统(源码&UI&教程)
- Python基于CycleGAN&pix2pix的黑白图像AI上色(源码&部署教程)
- 擎创技术流 | ckman教程(3)CKman源码分析部署集群的主要步骤