HarmonyOS 鸿蒙Next从对话框获取用户返回结果

HarmonyOS 鸿蒙Next从对话框获取用户返回结果 有什么方法可以弹出一个对话框,然后以await的方式获取对话框中用户的选择结果吗?

比如说创建一个模态对话框,里面有两个按钮分别是A跟B,如果用户选择A,返回’A’,选择B,则返回 ‘B’。

期望通过类似这样的方法,弹出对话框并等待用户选择结果。

const result = await dialog.show();
result为'A' 或者 'B'
2 回复

参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-textpicker-dialog

参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-promptaction

import promptAction from '@ohos.promptAction';
import { BusinessError } from '@ohos.base';

@Entry
@Component
struct Index {
  build() {
    Row() {
      Column() {
        Text('Dialog')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            this.onBackClick();
          })
      }
      .width('100%')
    }
    .height('100%')
  }

  async onBackClick(): Promise<number> {
    let result = -1;
    try {
      let data = await promptAction.showDialog({//data是个对象
        title: '标题',
        message: '内容',
        buttons: [
          {
            text: 'A',
            color: '#000000',
          },
          {
            text: 'B',
            color: '#000000',
          }
        ]
      })
      console.log("index是:" + data.index)//index是数字0和1
      result=data.index
    } catch (error) {
      //nothing
    }
    console.log("result是:" + result)
    return result;
  }
}

Text(‘Dialog’)改为Button(‘点击’)

可以使用promptAction.showActionMenu,效果和说的朋友圈上下样式相似

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-promptaction#promptactionshowactionmenu

参考:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-promptAction.md#ohospromptaction-弹窗

更多关于HarmonyOS 鸿蒙Next从对话框获取用户返回结果的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,从对话框获取用户返回结果通常涉及到使用对话框组件并处理其回调事件。以下是一个简要的说明,如何在鸿蒙系统中实现这一功能:

鸿蒙系统提供了多种对话框组件,如CommonDialogMessageDialog等,用于显示信息并获取用户交互。当用户与对话框进行交互(如点击按钮)时,会触发相应的事件回调。

为了从对话框获取用户返回结果,你需要:

  1. 创建对话框实例,并设置其标题、内容、按钮等属性。
  2. 为对话框的按钮设置点击事件监听器。在监听器的回调方法中,根据用户点击的按钮(如确定、取消等),获取用户的选择结果。
  3. 显示对话框,并等待用户交互。

例如,如果你使用的是MessageDialog,你可以通过setMessageDialogClickListener方法设置点击事件监听器,然后在回调方法中判断用户点击的是哪个按钮,从而获取用户返回的结果。

示例代码(伪代码,具体实现需根据鸿蒙API文档调整):

MessageDialog dialog = new MessageDialog(context);
dialog.setMessage("Are you sure?");
dialog.setMessageDialogClickListener(new MessageDialog.MessageDialogClickListener() {
    @Override
    public void onClick(MessageDialog dialog, int which) {
        if (which == DialogInterface.BUTTON_POSITIVE) {
            // 用户点击了确定按钮
        } else if (which == DialogInterface.BUTTON_NEGATIVE) {
            // 用户点击了取消按钮
        }
    }
});
dialog.show();

请注意,上述代码为示例性质,具体实现需参考鸿蒙系统的API文档。如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部