Harmony页面间的传值

普通传值

Intent intent1 = new Intent();
intent1.setParam("user", "gjw");
present(new DemoAbilitySlice(), intent1);

接收值

  public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_demo);
        if (intent != null) {
            Text Id_tv_intent = (Text) findComponentById(ResourceTable.Id_tv_intent);
            Id_tv_intent.setText("跳转界面传递获取的值:" + intent.getStringParam("user") + "");
        }
    }

带有返回值的传值

 Intent intent1 = new Intent();
intent1.setParam("user", "gjw");
 presentForResult(new DemoAbilitySlice(), intent1, 1000);

接收值

   @Override
    protected void onResult(int requestCode, Intent resultIntent) {
        super.onResult(requestCode, resultIntent);
        if (requestCode == 1000) {
            text3.setText("从上个界面返回,传递过来的值:" + 
            resultIntent.getStringParam("pw"));
        }
    }
鸿蒙Prop(Property)是一种轻量级的数据绑定机制,在HarmonyOS应用开发中,它允许你在组件轻松地递数据。如果你想要在两个页面,你可以通过以下几种方式进行: 1. **使用Props(属性)**: 当你从一个页面创建一个新的Activity或Fragment,并将需要递的变量作为Props入,接收端就能直接访问到这些数据。例如,在`startActivity()`或`startFragment()`方法中指定这些属性。 ```java Intent intent = new Intent(); intent.putExtra("key", value); // "key"是你自定义的键,value是要递的数据 startActivity(intent); ``` 2. **事件总线(Event Bus)**: 如果你想在多个页面广播一个通用的消息,可以使用HarmonyOS提供的Event Bus框架。先在一个页面发布事件,然后其他页面订阅并处理这个事件。 ```java EventBus.getDefault().post(new DataEvent(value)); // DataEvent是你自定义的事件类 // 接收事件的部分 EventBus.getDefault().register(this); DataEvent event = EventBus.getDefault().take(DataEvent.class); if (event != null) { String data = event.getData(); // 数据就在event.getData()中 } EventBus.getDefault().unregister(this); ``` 3. **共享存储**: 对于一些不需要实时更新的数据,可以考虑使用应用内部的Shared Preferences、SQLite数据库或者文件系统来进行存储,然后在需要的时候读取。 无论哪种方式,记得在完成后检查相关页面是否正确处理了接收到的数据,以及是否有相应的错误处理机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值