在HarmonyOS NEXT开发中弹窗封装成一个方法 在其他地方直接调用?
在HarmonyOS NEXT开发中,你可以将弹窗封装成一个方法,并在其他地方直接调用。以下是一个简单的示例:
1. **创建一个弹窗方法**:
你可以在一个工具类或者你的主类中创建一个静态方法来封装弹窗逻辑。
public class DialogUtils {
public static void showCustomDialog(Context context, String title, String message) {
CommonDialog dialog = new CommonDialog(context);
dialog.setTitle(title);
dialog.setMessage(message);
dialog.setPositiveButton(new CommonDialog.OnButtonClickedListener() {
@Override
public void onClick(CommonDialog dialog) {
// Positive button clicked logic
dialog.dismiss();
}
});
dialog.setNegativeButton(new CommonDialog.OnButtonClickedListener() {
@Override
public void onClick(CommonDialog dialog) {
// Negative button clicked logic
dialog.dismiss();
}
});
dialog.show();
}
}
2. **调用弹窗方法**:
在你的其他组件或类中,你可以直接调用这个封装好的方法。
public class MyEntry extends Ability {
@Override
protected void onStart(Intent intent) {
super.onStart(intent);
setUIContent(ResourceTable.Layout_ability_main);
// 显示弹窗
DialogUtils.showCustomDialog(this, "Title", "This is a custom dialog message.");
}
}
在这个示例中,`DialogUtils` 类包含一个静态方法 `showCustomDialog`,它接受一个 `Context`、标题和消息作为参数,并显示一个自定义对话框。然后,在你的 `MyEntry` Ability 中,你可以直接调用 `DialogUtils.showCustomDialog` 方法来显示弹窗。
弹框场景更推荐使用promptAction.openCustomDialog,后续弹框也主要是基于promptAction做演进。开发者主要需要自定义弹框内容的buillder,使用参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...
使用promptAction.openCustomDialog可以设置弹窗非模态(isModal: false)来控制点击弹窗外部区域不自动关闭