开发者社区> 问答> 正文

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

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

展开
收起
迪哒迪滴喵 2024-07-22 16:45:42 10 0
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 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载