怎么实现entry里的Slice切换到,feature里的Slice-鸿蒙开发者社区-51CTO.COM

怎么实现entry里的Slice切换到,feature里的Slice

官方的ComponentCodelab,按钮点击无跳转

官方示例
demo运行
2021-08-24 18:09:10
浏览
收藏 0
回答 2
待解决
回答 2
按赞同
/
按时间
狼哥Army
1

一般切换跳转以下代码也可以,为了更好让大家帮你解决问题,你可以把你切换的代码贴一下出来,大家可以快速帮你找到解决方法.

 

Intent intentService = new Intent();
Operation operation = new Intent.OperationBuilder()
                            .withDeviceId("")
                            .withBundleName(getBundleName())
                            .withAbilityName(SendServiceAbility.class.getName())
                            .build();
intentService.setOperation(operation);
startAbility(intentService);
分享
微博
QQ
微信
回复
2021-08-24 18:38:06
qq601cb0f961e39
1

官方demo里代码如下:

@Override
public void onStart(Intent intent) {
    super.onStart(intent);
    super.setUIContent(ResourceTable.Layout_ability_main);
    setClickedListener(this, findComponentById(ResourceTable.Id_tab_list),
            findComponentById(ResourceTable.Id_list_container),
            findComponentById(ResourceTable.Id_radio_container),
            findComponentById(ResourceTable.Id_checkbox),
            findComponentById(ResourceTable.Id_date_picker),
            findComponentById(ResourceTable.Id_directional_layout),
            findComponentById(ResourceTable.Id_dependent_layout),
            findComponentById(ResourceTable.Id_stack_layout),
            findComponentById(ResourceTable.Id_table_layout)
    );
}

private void setClickedListener(Component.ClickedListener clickListener, Component...components) {
    for (Component component : components) {
        if (component == null) {
            continue;
        }
        component.setClickedListener(clickListener);
    }
}

@Override
public void onClick(Component component) {
    String className = "";
    switch (component.getId()) {
        default:
            break;
    }
    abilitySliceJump(className);
}

private void abilitySliceJump(String name) {
    if (name == null || "".equals(name)) {
        return;
    }
    try {
        Class abilitySliceClass = Class.forName(name);
        Object object = abilitySliceClass.newInstance();
        if (object instanceof AbilitySlice) {
            present((AbilitySlice) object, new Intent());
        }
    } catch (ReflectiveOperationException e) {
        new ToastDialog(getContext())
                .setText("Error!")
                .show();
    }
}

分享
微博
QQ
微信
回复5
2021-08-25 08:20:16
相关问题
PageAbility配合多个Slice实现页面间切换
13792浏览 • 4回复 已解决
关于HAP包entryfeature类型
10976浏览 • 1回复 待解决
har包worker如何在entry包内使用
2005浏览 • 1回复 待解决
通知怎么显示图片有知道吗?
5332浏览 • 2回复 待解决
app切换到后台时进度条处理问题
2534浏览 • 0回复 待解决
appscope定义资源在Har不能引用
132浏览 • 1回复 待解决
工具类怎么调用startAbility?
4886浏览 • 1回复 待解决
MenuItemicon图标怎么改颜色
2181浏览 • 1回复 待解决
在vue怎么做环境判断?
116浏览 • 1回复 待解决
卡片怎么更换图片有知道吗?
6169浏览 • 1回复 待解决