MainActivity点击WebView链接跳转MainActivity2并加载相同URL如何实现
你的代码不生效的核心原因是没有将点击的URL参数从MainActivity传递到MainActivity2,MainActivity2无法获取到需要加载的目标地址,自然无法正常加载。按照以下两步修改即可实现需求:
步骤1:修改MainActivity的跳转逻辑,携带URL参数
在创建跳转Intent时,通过putExtra方法将匹配到的URL作为参数传入:
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.endsWith(".html")) { Intent intent = new Intent(view.getContext(), MainActivity2.class); // 新增:将目标URL存入Intent intent.putExtra("TARGET_LOAD_URL", url); view.getContext().startActivity(intent); return true; } return super.shouldOverrideUrlLoading(view, url); }
步骤2:修改MainActivity2的加载逻辑,接收参数后加载
在MainActivity2的onCreate生命周期中先取出Intent携带的URL参数,判空后再调用WebView加载,注意loadUrl方法本身支持直接传入字符串类型的URL,无需额外转Uri:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); // 替换为你布局文件里WebView的实际ID WebView myWebView = findViewById(R.id.webview); // 接收传入的URL参数 String targetUrl = getIntent().getStringExtra("TARGET_LOAD_URL"); if (targetUrl != null && !targetUrl.isEmpty()) { myWebView.loadUrl(targetUrl); } }
如果修改后加载出现空白,可检查是否已在AndroidManifest.xml中添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
内容的提问来源于stack exchange,提问作者Jarosław Król
相关产品推荐
相关产品推荐

