第二个鸿蒙入门应用页面跳转

文章目录

这种方式也是鸿蒙官方推荐的一个入门应用。
最终效果:

第二个鸿蒙入门应用页面跳转_第1张图片
第二个鸿蒙入门应用页面跳转_第2张图片

在ability_main.xml中,修改内容如下

第二个鸿蒙入门应用页面跳转_第3张图片

在com.huan.myapplication 包下 创建Ability类

第二个鸿蒙入门应用页面跳转_第4张图片

创建完毕之后,会发现多了一个xml文件

第二个鸿蒙入门应用页面跳转_第5张图片
但我们是用代码去实现的,所以,这个xml文件把它删除

在ability_main.xml 中,发现 DirectionalLayout 中是将所有的功能都给包含起来,类似下图:
第二个鸿蒙入门应用页面跳转_第6张图片

来到了 SecondAbilitySlice 页面中,添加如下代码

package com.huan.myapplication.slice;

import com.huan.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.ability.DataAbilityHelper;
import ohos.aafwk.content.Intent;
import ohos.agp.components.DirectionalLayout;
import ohos.agp.components.Text;
import ohos.agp.utils.Color;

public class SecondAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
       // super.setUIContent(ResourceTable.Layout_ability_secound);

        //1.创建布局对象
        DirectionalLayout d1 = new DirectionalLayout(this);//代表这个对象在当前的类
        //2.创建文本对象
        Text text = new Text(this);
        //设置内容
        text.setText("爱昊哥么");
        //设置文字大小
        text.setTextSize(40);
        //设置文字颜色
        text.setTextColor(Color.BLUE);

        //3.把文本对象,添加到布局中
        d1.addComponent(text);
        //4.把布局添加到子页面当中
        super.setUIContent(d1);


    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

代码实现

来到了 MainAbilitySlice 类

package com.huan.myapplication.slice;

import com.huan.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.aafwk.content.Operation;
import ohos.agp.components.Button;
import ohos.agp.components.Component;


public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {

    Button btu ;
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);

        //1.找到按钮 id
        btu = (Button) findComponentById(ResourceTable.Id_but1);

        //2.给按钮添加一个点击事件
        //如果没有添加点击事件,那么用鼠标点击按钮之后是没有任何反应的。
        //如果我们给按钮添加了点击事件,那么用鼠标点击按钮之后,就可以执行对应的代码
        //理解方式:
        //给btu这个按钮添加了点击事件
        //当我们用鼠标点击了btu这个按钮之后,就可以执行本类中onClick方法
        btu.setClickedListener(this);
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }

    @Override
    public void onClick(Component component) {
        //点击按钮只要执行的代码
        //跳转到第二个页面中
        if(component == btu){
            //只有点击了btu这个按钮之后,才能跳转

            //跳转的哪个页面中,(意图)
            Intent i = new Intent();
            //包含了要跳转的页面信息
            Operation operation = new Intent.OperationBuilder()
                    .withDeviceId("") //要跳转到哪个设备上,如果传递一个没有内容的字符串,则表示跳转到本机
                    .withBundleName("com.huan.myapplication")//我要跳转到哪个应用上
                    .withAbilityName("com.huan.myapplication.SecondAbility")//要跳转的页面
                    .build();//表示将上面的三个信息进行打包
            //把打包后的operation设置到意图当中
            i.setOperation(operation);
            //跳转页面
            startAbility(i);
        }

    }
}

你可能感兴趣的:(HarmonyOS,harmonyos)