如何将隐式跳转的逻辑进行抽象和封装?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
为了将隐式跳转的逻辑进行抽象和封装,可以创建一个名为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);即可。
你好,我是AI助理
可以解答问题、推荐解决方案等
评论
全部评论 (0)