2024年最全鸿蒙从窗口开始:Page Ability诞生记_page类型的ability(2),鸿蒙开发自学教程

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

{
“skills”: [
{
“actions”: [
“com.unitymarvel.demo.first”
]
}
],
“orientation”: “landscape”,
“formEnabled”: false,
“name”: “com.unitymarvel.demo.FirstAbility”,
“icon”: “ m e d i a : i c o n " , " d e s c r i p t i o n " : " media:icon", "description": " media:icon","description":"string:sqlite_description”,
“label”: “第一个Ability”,
“type”: “page”,
“launchType”: “standard”
}

在创建HarmonyOS工程时,IDE已经自动在config.json文件中添加了MainAbility的注册信息,读者可以照葫芦画瓢,将MainAbility的注册代码复制一份,然后略作修改。

这里主要修改了actions、name和label属性。actions表示一个或多个与Page Ability关联的动作,可以通过这些action来调用当前的Page Ability。name指定了Page Ability类的全名,本例是com.unitymarvel.demo.FirstAbility。label用于指定窗口的标题文本。

  1. 创建布局文件

HarmonyOS App既可以用Java代码动态创建组件的方式布局,也可以使用布局文件。本例使用布局文件的方式进行布局,这也是我推荐的布局方式。因为使用Java代码创建复杂的布局非常困难,而且代码量比较大,代码难以维护。

HarmonyOS工程的所有布局文件都放在resources/base/layout目录中,现在创建一个first_layout.xml文件,并输入下面的代码:

<?xml version="1.0" encoding="utf-8"?>





关于布局的更多内容在后面的章节会详细讨论,这里只要知道,first_layout.xml文件中使用了方向布局,而且是垂直方向。在垂直方向上从上到下放置了3个组件,分别是Button1、Text和Button2。

  1. 装载布局文件

创建完布局文件后,需要与Page Ability关联才能显示布局中的组件。通常需要在Page Ability启动时装载布局文件,这就要使用到Page Ability的生命周期方法onStart,该方法会在Page Ability开始时调用,通常在onStart方法中做一些初始化的工作,例如,为组件指定事件监听器。

现在需要在FirstAbility类中添加一个onStart方法,并使用super.setUIContent方法装载布局文件,代码如下:

package com.unitymarvel.demo;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
public class FirstAbility extends Ability {
@Override
public void onStart(Intent intent) {
// 必须调用父类的onStart方法
super.onStart(intent);
super.setUIContent(com.unitymarvel.demo.ResourceTable.Layout_first_layout);
}
}

在HarmonyOS App中,任何形式的资源都会与一个int类型的值绑定,以便通过该值引用资源,这些值都在ResourceTable类中以常量(static final形式的变量)形式存在。这些值都是自动生成的,通常以资源文件名作为变量名,前面加上前缀。布局文件的前缀是Layout。如本例的布局文件是first_layout.xml,所以生成的ID是Layout_first_layout。根据这个生成规则,要求资源文件的命名必须符合Java标识符的命名规则,否则无法在ResourceTable类中生成ID。

  1. 显示Page Ability

到现在为止,一个最小的,而且是完整的Page Ability已经完成了,最后一步就是显示这个Page Ability。如果想让FirstAbility作为主Ability显示(HarmonyOS App运行后显示的第1个Page Ability),可以修改FirstAbility配置信息中的skills部分,将其改成如下形式:

“skills”: [
{
“entities”: [
“entity.system.home”
],
“actions”: [
“action.system.home”
]
}
]

但要主要,可能在config.json文件中还有其他Page Ability的actions也设为action.system.home。而HarmonyOS只会显示在config.json文件中遇到的第一个主Ability。所以要么将FirstAbility的注册信息调整为abilities的第1个元素,要么注释掉其他的action.system.home。

如果想在其他的Page Ability中显示FirstAbility,需要使用下面的代码。

Intent intent = new Intent();
intent.setAction(“com.unitymarvel.demo.first”);
startAbility(intent);

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

%以上鸿蒙开发知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值