不同Page间的AbilitySlice导航

可以通过配置Intent的Action导航到目标AbilitySlice。Page间的导航可以使用startAbility()或startAbilityForResult()方法,获得返回结果的回调为onAbilityResult()。在Ability中调用setResult()可以设置返回结果。

页面布局比较简单,就略过了。

具体请看代码:

  @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        //通过ID找到xml中的button控件
        Button button = (Button) findComponentById(ResourceTable.Id_main_button);
        //设置点击监听事件
        button.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                //点击跳转
//                presentForResult(new SecondSlice(),new Intent(),110);
                Intent intentNew = new Intent();
                Operation operation = new Intent.OperationBuilder().withDeviceId("")
                        .withBundleName(getBundleName())
                        .withAbilityName(OtherAbility.class)
                        .build();
                intentNew.setOperation(operation);
                intentNew.setParam("key","我从mainAbility到otherAbility");
                startAbilityForResult(intentNew,112);

            }
        });

    }

这是跳转的代码。

通过onAbilityResult方法接收回调结果


    @Override
    protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) {
        if (resultCode != 0 || resultData == null) {
            return;
        }
        LogUtil.info("onAbilityResult requestCode",requestCode+"  resultCode = "+resultCode);
        String str_text = resultData.getStringParam("key");
        text.setText(str_text);
    }

这是接收返回结果的代码。

@Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_other);
        Text textShow = (Text) findComponentById(ResourceTable.Id_other_text_show);
        textShow.setText(intent.getStringParam("key"));
        Button btn_other = (Button) findComponentById(ResourceTable.Id_btn_other_ability);
        btn_other.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                //结束当前页面
                terminate();
            }
        });

    }

    @Override
    public void onActive() {
        super.onActive();
        //设置传递内容
        Intent intent = new Intent();
        intent.setParam("key","我是从otherAbility回到MainAbility");
        getAbility().setResult(0,intent);
    }

在另一个Page abilitySlice在onActive方法设置回传的内容。

这就是Page间的导航。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬砖摸鱼专业户

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值