怎么实现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实现页面间切换
6842浏览 • 4回复 已解决
关于HAP包entryfeature类型
719浏览 • 1回复 待解决
鸿蒙相册最近删除文件夹在哪?
3596浏览 • 1回复 待解决
鸿蒙2.0申请怎么没有mate30pro
2166浏览 • 2回复 待解决
import Sample 异常显示
704浏览 • 1回复 待解决
鸿蒙怎么实现自定义布局Dialog
2720浏览 • 2回复 已解决