[HarmonyOS]——普通弹框抽取工具类

每次使用时,都写一遍弹框操作的代码不是不行,而是太麻烦了,现在就把弹框操作抽象出来作为一个工具类,需要使用的使用直接调用方法即可。

  • 注:一般在Java开发当中,工具类都放在 xxx_utils包下,此处我们创建 dialogutils 包,用于存储弹框相关的工具类
  • 这里需要注意的就是上下文,也即规定弹框展示哪个界面中

抽取工具类:

package com.example.demo1.dialogutils;

import com.example.demo1.ResourceTable;
import ohos.agp.components.*;
import ohos.agp.window.dialog.CommonDialog;
import ohos.app.Context;

public class MyDialog {
    /**
     * return none
     * @param context:上下文参数
     * @param msg:文本框展示的默认文本数据
     */
    public static void showDialog(Context context, String msg) {
        //把普通弹框弹出来
        //1、创建弹框对象
        //this:当前弹框是哪些展示在当前的界面中
        CommonDialog cd = new CommonDialog(context);

        //默认弹框是直角的,可以把执教设置为圆角
        cd.setCornerRadius(15);

        //LayoutScatter布局加载器,加载xml文件并获得一个布局对象
        //parse方法:加载xml文件,返回一个布局对象
        //参数1:要加载的xml文件
        //参数2:该xml文件是否跟其他xml文件有关,如果无关是独立的,就写null就可以了
        //参数3:如果文件是独立的,就直接写false
        DirectionalLayout dl = (DirectionalLayout) LayoutScatter.getInstance(context).parse(ResourceTable.Layout_messagedialog, null, false);

        //要给布局里面的文本和按钮设置事件或者修改内容
        //此时需要用dl去调用,表示获取的是dl这个布局的内容
        Text title = (Text) dl.findComponentById(ResourceTable.Id_text_d);
        Button submit = (Button) dl.findComponentById(ResourceTable.Id_submit);
        Button cancel = (Button) dl.findComponentById(ResourceTable.Id_cancel);

        //title给标题设置内容
        title.setText(msg);

        //给两个按钮添加单击事件
        submit.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                title.setText("点击了确定按钮");
            }
        });
        cancel.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                cd.destroy();
            }
        });

        //此时布局对象跟弹框还没有任何关系
        //还需要吧布局对象交给弹框才可以
        cd.setContentCustomComponent(dl);

        //让弹框展示出来
        cd.show();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Star星屹程序设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值