| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package com.fujica.abk.component;
- import com.fujica.abk.ResourceTable;
- import ohos.agp.components.*;
- import ohos.agp.utils.LayoutAlignment;
- import ohos.agp.window.dialog.CommonDialog;
- import ohos.app.Context;
- /**
- * 支付失败弹窗
- */
- public class PayFailDialog {
- private Context context;
- private CommonDialog dialog;
- private Component dialogRootView;
- private OnDismissListener dismissListener;
-
- // UI组件
- private Text txtErrorMsg;
- private Button btnConfirm;
-
- // 错误信息
- private String errorMsg;
-
- /**
- * 弹窗关闭监听器
- */
- public interface OnDismissListener {
- void onDismiss();
- }
-
- /**
- * 构造函数
- */
- public PayFailDialog(Context context) {
- this.context = context;
- initDialog();
- }
-
- /**
- * 设置错误信息
- */
- public void setErrorMsg(String errorMsg) {
- this.errorMsg = errorMsg;
- updateErrorMsg();
- }
-
- /**
- * 设置弹窗关闭监听器
- */
- public void setOnDismissListener(OnDismissListener listener) {
- this.dismissListener = listener;
- }
-
- /**
- * 初始化对话框
- */
- private void initDialog() {
- // 创建 CommonDialog
- dialog = new CommonDialog(context);
-
- // 加载自定义布局
- dialogRootView = LayoutScatter.getInstance(context)
- .parse(ResourceTable.Layout_dialog_pay_fail, null, false);
-
- // 获取UI组件
- txtErrorMsg = (Text) dialogRootView.findComponentById(ResourceTable.Id_txt_error_msg);
- btnConfirm = (Button) dialogRootView.findComponentById(ResourceTable.Id_btn_confirm);
-
- // 设置确认按钮点击事件
- if (btnConfirm != null) {
- btnConfirm.setClickedListener(component -> {
- hide();
- if (dismissListener != null) {
- dismissListener.onDismiss();
- }
- });
- }
-
- // 设置对话框内容
- dialog.setContentCustomComponent(dialogRootView);
-
- // 设置对话框属性
- dialog.setTransparent(true); // 设置透明背景
- dialog.setSize(ComponentContainer.LayoutConfig.MATCH_PARENT,
- ComponentContainer.LayoutConfig.MATCH_PARENT);
- dialog.setAlignment(LayoutAlignment.CENTER);
- }
-
- /**
- * 更新错误信息显示
- */
- private void updateErrorMsg() {
- if (txtErrorMsg != null) {
- String msg = errorMsg != null && !errorMsg.isEmpty() ? errorMsg : "支付失败,请重试";
- txtErrorMsg.setText(msg);
- }
- }
-
- /**
- * 显示对话框
- */
- public void show() {
- if (dialog != null) {
- dialog.show();
- }
- }
-
- /**
- * 隐藏对话框
- */
- public void hide() {
- if (dismissListener != null) {
- dismissListener.onDismiss();
- }
- if (dialog != null) {
- dialog.hide();
- }
- }
- }
|