栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

DevEco Studio页面的跳转(笔记)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

DevEco Studio页面的跳转(笔记)

本文使用的是JAVA开发模式,而不是JS+JAVA的模式

一、布局方式

1.xml文件:标签表示要展示内容

2.Java代码:对象表示要展示的内容、

(如果过是js开发,就可按照类似HTML的方式编写)

现我们要为页面添加按钮然后让其跳转

二、页面的布局 xml布局

第一个页面我们就用xml

找到

默认竖直布局 

添加如下代码

(其中match_content是使得与内容同宽)

   

Java布局

随后创建一个新的页面(Java编写)

如果勾选了,该页面会为程序启动第一个执行界面

由于我们使用Java,因此可以将对应的xml删除

 同时注释掉该句

 接下来类似于Java的图形界面开发。笔者认为可以用Java中的stage理解。

package com.example.myapplication.slice;

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

public class MainAbility2Slice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        //super.setUIContent(ResourceTable.Layout_ability_main2);
        //1,布局对象
        //为当前舞台添加布局对象
        DirectionalLayout d1 = new DirectionalLayout( this);
        //2.文本对象
        //为当前舞台添加文本对象
        Text t= new Text(this);
        //设置内容
        t.setText("第二个页面");
        //设置字体大小
        t.setTextSize(55);
        //设置字体颜色
        t.setTextColor(Color.BLUE);
        //3.将文本对象放入布局
        d1.addComponent(t);
        //4.把布局放入舞台
        super.setUIContent(d1);
    }

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

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}
 实现跳转

为第一个页面的Slice编写如下代码

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.Button;
import ohos.agp.components.Component;
public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener{
    Button btu;//作为MainAbilitySlice的成员变量,而不是一个方法的变量
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        //1.找到id
        btu = (Button)findComponentById(ResourceTable.Id_but1);
        //2.添加点击事件
        //由于本类实现了ClickedListener,因此可以直接传入
        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){
            //创建意图对象,你想跳转到哪里
            //包含了,跳转信息
            Intent i = new Intent();
            //OperationBuilder操作创建
            Operation operation = new Intent.OperationBuilder()
                    //信息都可以在config里面查到(name)
                    //withDeviceId:要跳转到哪个设备,无内容字符串,表示跳转本机(万物互联)
                    .withDeviceId("")
                    //withBundleName 要跳转到哪个应用上,下括号可以写本应用
                    .withBundleName("com.example.myapplication")
                    //要跳转到哪个页面上
                    .withAbilityName("com.example.myapplication.MainAbility2")
                    //将上面信息打包(构建)
                    .build();
            //将打包信息设置到意图里面
            i.setOperation(operation);
            //启动能力(跳转页面)
            startAbility(i);
        }

    }
}

 

 

 

 

 

 

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346320.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号