Android攻城狮学鸿蒙 -- 点击事件

具体参考:华为官网学习地址

1、点击事件,界面跳转

对于一个按钮设置点击事件,跳转页面。但是onclick中,如果pages前边加上"/",就没法跳转。但是开发工具加上"/"才会给出提示。不知道是不是开发工具的bug。(也是因为自己对于路径这些的使用规则不太清楚。)代码如下:

复制代码
Button('测试光标', { type: ButtonType.Capsule })
            .width(200)
            .height(50)
            .backgroundColor(Color.Grey)
            .fontColor(Color.Red)
            .fontWeight(600)
            .onClick(() => {
              console.log("111111111111111111111111")
              router.push({
                url: 'pages/Listpage'
              })
            })

上述是方式一:

还有方式二:

2、界面跳转,携带参数

在第一个界面中,给button添加点击事件,携带参数,代码如下。

在第二个界面中,接收数据,代码如下。其中src获取到的就是上一个界面传递过来的值。

复制代码
import router from '@ohos.router';

@Entry
@Component
struct Second {
  @State src: string = router.getParams()?.['src'];
  // 页面刷新展示
  ...
}

3,返回上一个界面

返回上一个页面。

复制代码
router.back();

返回到指定页面。也要注意"pages"前边没有"/"。

复制代码
router.back({ url: 'pages/Index' });

返回上一个页面时候,是否弹出对话框提示,需调用代码:

复制代码
router.enableBackPageAlert({
  message: 'Message Info'
});

或者因版本不同,api不同,调用下方api

复制代码
router.enableAlertBeforeBackPage({
   message: '确定返回?'
});

但是,在点击事件中调用上代码,并直接调用关闭方法页面(如下代码)时候,不会弹出对话框。当注释关闭页面方法,点击系统三角返回按钮时候,可以弹出对话框。原因需要继续学习查找。

复制代码
router.back();//关闭页面代码

4、返回上一个页面,并携带数据

类似于Android的intent携带数据,然后在上一个界面的onActivityResult方法中接收。

在第二个界面,调用关闭界面方法的代码:

复制代码
router.back({
  url: 'pages/Index',
  params: {
    srcBack: 'Second页面传来的数据',
  }
})

在第一个界面,接收数据的代码

复制代码
import router from '@ohos.router';

@Entry
@Component
struct Index {
  @State src: string = '';    //生命接收变量

  onPageShow() {
    this.src = router.getParams()?.['srcBack'];    //接收传回来的数据
  }

  // 页面刷新展示
  ...
}

然后再界面控件中,显示获取到的数据,代码如下:

复制代码
Text(this.srcBack)
          .fontSize($r('app.float.text_size_one'))    //获取的资源文件中,文字的大小
          .fontWeight(800)

回显如下:

相关推荐
Libraeking3 小时前
破壁行动:在旧项目中丝滑嵌入 Compose(混合开发实战)
android·经验分享·android jetpack
市场部需要一个软件开发岗位3 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
御承扬4 小时前
鸿蒙NDK UI之文本自定义样式
ui·华为·harmonyos·鸿蒙ndk ui
前端不太难4 小时前
HarmonyOS 游戏上线前必做的 7 类极端场景测试
游戏·状态模式·harmonyos
大雷神4 小时前
HarmonyOS智慧农业管理应用开发教程--高高种地--第29篇:数据管理与备份
华为·harmonyos
讯方洋哥5 小时前
HarmonyOS App开发——关系型数据库应用App开发
数据库·harmonyos
JMchen1235 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
crmscs6 小时前
剪映永久解锁版/电脑版永久会员VIP/安卓SVIP手机永久版下载
android·智能手机·电脑
localbob6 小时前
杀戮尖塔 v6 MOD整合版(Slay the Spire)安卓+PC端免安装中文版分享 卡牌肉鸽神作!杀戮尖塔中文版,电脑和手机都能玩!杀戮尖塔.exe 杀戮尖塔.apk
android·杀戮尖塔apk·杀戮尖塔exe·游戏分享
巴德鸟6 小时前
华为手机鸿蒙4回退到鸿蒙3到鸿蒙2再回退到EMUI11 最后关闭系统更新
华为·智能手机·harmonyos·降级·升级·回退·emui