开发者社区 问答 正文

如何将隐式跳转的逻辑进行抽象和封装?

如何将隐式跳转的逻辑进行抽象和封装?

展开
收起
迪哒迪滴喵 2024-07-22 16:45:42 17 发布于天津 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 为了将隐式跳转的逻辑进行抽象和封装,可以创建一个名为Router的静态工具类,提供一个open方法,该方法接收当前页面的上下文Context和目标页面的URL作为参数。在open方法内部,首先解析URL为Uri对象,然后根据Uri的信息构建Intent,并将URL中的查询参数通过Intent的putExtra方法传递给目标页面。最后,通过context.startActivity(intent)执行跳转操作。示例代码如下:

    public class Router { 
    
    /** 
    * 根据url跳转到目标页面 
    * 
    * @param context 当前页面上下文 
    * @param url 目标页面url 
    */ 
    public static void open(Context context, String url) { 
    Uri uri = Uri.parse(url); 
    String urlWithoutParam = String.format("%s://%s%s", uri.getScheme(), uri.getHost(), uri.getPath()); 
    Intent intent = new Intent(urlWithoutParam); 
    for (String paramKey : uri.getQueryParameterNames()) { 
    String paramValue = uri.getQueryParameter(paramKey); 
    intent.putExtra(paramKey, paramValue); 
    } 
    context.startActivity(intent); 
    } 
    }
    

    外部页面跳转时,只需调用Router.open(this, "https://www.xxx.com/goods/detail?goodsId=" + model.goodsId);即可。

    2024-07-22 18:29:18 举报
    赞同 3 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等