HarmonyOS 鸿蒙Next 接口回调的写法是怎样的

发布于 1周前 作者 itying888 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 接口回调的写法是怎样的

一个页面引用了一个公共组件,希望获取公共组件的某个控件的点击事件。

1,page1中引入了NavigationBar组件:

NavigationBar({ title: this.bundleName, rightTitle: ‘切换城市’, flag: true, url: ‘’ })

2,公共组件NavigationBar中:
 
Text(this.rightTitle)
.fontSize(16)
.width(‘20%’)
.fontColor($r(‘app.color.main_color’))
.margin({ right: 10 })
.visibility(this.flag ? Visibility.Visible : Visibility.Hidden)
.onClick(() => {
//希望把该点击事件抛出到引用该公共组件的页面中去,该怎么写?
}) 
希望能在page1中获取到NavigationBar的这个Text的点击事件(类似于java中的接口回调),该怎么写?感谢~


更多关于HarmonyOS 鸿蒙Next 接口回调的写法是怎样的的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

参考demo:

export interface MyInterDemo {
  func_1: () => void;
  func_2: () => boolean;
  func_3: (arg: string) => void;
}
[@Entry](/user/Entry)
[@Component](/user/Component)
struct TestInterfacePage {
  testInter(inter: MyInterDemo) {
    console.log('testInter');
    inter.func_1();
    inter.func_2();
    inter.func_3('hello');
  }
  build() {
    Row() {
      Column() {
        Button('Test interface')
          .onClick(() => {
            let demo: MyInterDemo = {
              func_1: () => {
                console.log('func_1');
              },
              func_2: () => {
                console.log('func_2');
                return true;
              },
              func_3: (arg: string) => {
                console.log('func_3:' + arg);
              }
            }
            this.testInter(demo);
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

更多关于HarmonyOS 鸿蒙Next 接口回调的写法是怎样的的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


ArkTs继承了很多Ts的语法,方法是可以作为参数进行传递的,建议取学习下Ts

在HarmonyOS鸿蒙系统中,接口回调通常用于异步操作或事件处理。以下是一个简单的接口回调写法示例:

  1. 定义回调接口: 首先,定义一个接口来表示回调方法。例如,定义一个OnResultCallback接口,包含一个onResult方法。

    // 注意:这里使用伪代码表示,实际鸿蒙开发不使用Java
    interface OnResultCallback {
        void onResult(int resultCode, String resultData);
    }
    
  2. 在类中注册回调: 然后,在需要回调的类中,定义一个回调接口变量,并提供一个设置回调的方法。

    // 伪代码
    class MyAsyncTask {
        private OnResultCallback callback;
    
        public void setCallback(OnResultCallback callback) {
            this.callback = callback;
        }
    
        public void execute() {
            // 异步操作
            // 操作完成后调用回调
            if (callback != null) {
                callback.onResult(0, "Success");
            }
        }
    }
    
  3. 实现回调接口: 最后,在实现类中实现回调接口,并设置回调。

    // 伪代码
    class MainActivity implements OnResultCallback {
        @Override
        public void onResult(int resultCode, String resultData) {
            // 处理回调结果
        }
    
        public void startTask() {
            MyAsyncTask task = new MyAsyncTask();
            task.setCallback(this);
            task.execute();
        }
    }
    

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部