HarmonyOS 鸿蒙Next 弹出对话框
import promptAction from '@ohos.promptAction'
let customDialogId: number = 0
@Builder
function customDialogBuilder() {
Column() {
Text('Custom dialog Message').fontSize(10)
Row() {
Button("确认").onClick(() => {
promptAction.closeCustomDialog(customDialogId)
})
Blank().width(50)
Button("取消").onClick(() => {
promptAction.closeCustomDialog(customDialogId)
})
}
}.height(200).padding(5)
}
@Entry
@Component
struct Index {
@State message: string = 'Hello World'
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() => {
promptAction.openCustomDialog({
builder: customDialogBuilder.bind(this)//1,此this是什么类型,在非页面中怎么获得指向页面的this
}).then((dialogId: number) => {
customDialogId = dialogId
})
})
}
.width('100%')
}
.height('100%')
}
}
我想要在工具类中弹出对话框,开发文档上有以上代码,在页面中运行以上代码,在api12中提示““Function.bind” is not supported (arkts-no-func-bind)”,但是实际是可以执行,我想请教下为什么,除此之外我想在工具类中使用上述方式弹出对话框,注释1处的this具体是什么类型,如果是页面,那么怎么在工具类中方便的取得指向页面的this
更多关于HarmonyOS 鸿蒙Next 弹出对话框的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
```
您可以参考下面这种方式:
export function testPromptDialog() {
let url = "http://localhost:9588/product/list";
httpRequestGet(url).then((data: ResponseResult) => {
if (data.code != CommonConstant.SERVER_CODE_SUCCESS) {
const that = GlobalContext.getContext().getObject('UIContext') as UIContext;
if (that) {
promptAction.openCustomDialog({
alignment:DialogAlignment.Center,
builder: customDialogBuilder.bind(that, "网络请求失败!")
}).then((dialogId: number) => {
customDialogId = dialogId;
})
}
}
}).catch(() => {
});
}
```
GlobalContext其实是构建单例对象,这块您可以参考官方文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-more-cases-V5
更多关于HarmonyOS 鸿蒙Next 弹出对话框的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,弹出对话框(Dialog)的操作通常依赖于系统提供的UI组件框架。以下是如何在鸿蒙系统中实现弹出对话框的基本方法:
-
创建对话框布局: 首先,需要在XML文件中定义对话框的布局。这包括对话框的标题、内容、按钮等元素。布局文件应放置在
resources/layout
目录下。 -
实例化对话框: 在代码中,通过
Dialog
类或其子类(如CommonDialog
)来实例化对话框。使用setContentView
方法加载之前定义的布局文件。 -
设置对话框属性: 可以设置对话框的标题、是否可取消、是否显示动画等属性。通过
setTitle
、setCancelable
等方法进行设置。 -
显示对话框: 最后,通过调用
show
方法将对话框显示出来。通常,这会在某个事件触发时(如按钮点击)进行。 -
处理对话框事件: 为对话框中的按钮设置点击事件监听器,以处理用户交互。
示例代码(伪代码,具体实现需根据鸿蒙API调整):
// 伪代码,实际应使用鸿蒙API
Dialog dialog = new CommonDialog(context);
dialog.setContentView(R.layout.dialog_layout);
dialog.setTitle("标题");
dialog.setCancelable(false);
dialog.show();
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html