[文章]

鸿蒙应用开发练习:单向数据传送与双向数据传送

2021-2-27 16:11:37  326 Harmonyos 应用开发
分享
3
视图查看效果了。
图片1.png
图片2.png
点击按钮,可以把设置好的值传递到另外一个界面进行展示。
MainAbilitySlice.java 文件
package com.example.ability_ui_demo.slice;

import com.example.ability_ui_demo.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.colors.RgbColor;
import ohos.agp.components.*;
import ohos.agp.components.element.ShapeElement;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;

public class MainAbilitySlice extends AbilitySlice {
    private static HiLogLabel c_hll = new HiLogLabel(HiLog.LOG_APP,0x0908,"T.F.xie");

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

        setUIContent(ResourceTable.Layout_ability_main);
        Text text = (Text)findComponentById(ResourceTable.Id_test_text);
        Button button = (Button) findComponentById(ResourceTable.Id_test_button);

        ShapeElement element = new ShapeElement();

        element.setCornerRadius(18);
        element.setRgbColor(new RgbColor(43,156,15));
        //用上面设置的
        button.setBackground(element);

        //设置听器
        button.setClickedListener(new Component.ClickedListener() {
            //定义一个成变量
            private int a =0;
            @Override
            public void onClick(Component component) {
                //被点 a++
                a++;
                //改变文本框上面的
                text.setText("Clicked:"+a);

                //intent
                Intent intent1 = new Intent();
                intent.setParam("p1",123);
                intent.setParam("p2",0.123f);
                intent.setParam("p3","小黑");
                //向消息
//                present(new TargetSlice(),intent);
                //双向消息
                presentForResult(new TargetSlice(),intent,0);//requestCodeid
            }
        });
    }
    @Override
    protected void onResult(int requestCode,Intent intent){
        if (requestCode == 0){
            String s = intent.getStringParam("result");
            HiLog.info(c_hll,"MainAbilitySlice.onStar()");
        }
    }
}
TargetSlice.java
package com.example.ability_ui_demo.slice;

import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.*;
import ohos.agp.components.element.ShapeElement;
import ohos.agp.utils.Color;
import ohos.agp.utils.TextAlignment;

public class TargetSlice extends AbilitySlice {
    //定义一个容器象,使用绝对定位管理件容器
    ComponentContainer container = new PositionLayout(this);
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);

        //设置容器,高和设备屏幕一样,一样高
        container.setWidth(ComponentContainer.LayoutConfig.MATCH_PARENT);
        container.setHeight(ComponentContainer.LayoutConfig.MATCH_PARENT);
        ShapeElement element = new ShapeElement();

        String data = "";
        data += intent.getIntParam("p1",0);
        data +=" " + intent.getFloatParam("p2",0);
        data +=" " + intent.getStringParam("p3");

        //建一个文本框
        Text text = new Text(this);
        //示文本框要展示的容和信息
        text.setText(data);
        //设置位置和大小
        text.setTop(200);//y
        text.setLeft(100);//x
        text.setWidth(300);//w
        text.setHeight(40);//h
        text.setTextColor(Color.RED);//设置
        text.setTextSize(36);//字体大小
        text.setTextAlignment(TextAlignment.CENTER);//设置文本齐方式
        container.addComponent(text);
        super.setUIContent(container);
    }
    //投递包裹
    @Override
    public void onActive() {
        super.onActive();

        Intent intent = new Intent();

        intent.setParam("result","龙腾飞");

        setResult(intent);
    }

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

鸿蒙应用开发练习:单向数据传送与双向数据传送。.docx (64.66 KB, 下载次数: 2)

评论

您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发文章
快速回复
扫一扫分享
返回顶部 返回列表