问题描述
我想先在myclass中加载网址(google.com)。单击任何其他链接时,应在web_view.class中将其打开。 如何正确设置onclickListener以传递意图?我是android新手。我将非常感谢您的帮助。这是myclass.java代码。
public class myclass extends AppCompatActivity {
private WebView webView;
private ProgressBar progressBar;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
getSupportActionBar().hide();
webView = findViewById(R.id.webh);
progressBar = findViewById(R.id.progressBar);
CookieSyncManager.createInstance(this);
CookieManager.getInstance().setAcceptCookie(true);
this.webView.getSettings().setJavaScriptEnabled(true);
this.webView.setScrollbarFadingEnabled(false);
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view,int newProgress) {
progressBar.setProgress(newProgress);
if (newProgress==100) {
progressBar.setVisibility(View.GONE);
}
}
});
this.webView.loadUrl("https://google.com");
Intent intent = new Intent(this,web_view.class);
String mUrl= "https:google.com";
intent.setData(Uri.parse(mUrl));
startActivity(intent);
}
}
解决方法
您将需要覆盖WebViewClient
。
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading (WebView view,WebResourceRequest request) {
Intent intent = new Intent(myclass.this,web_view.class);
intent.setData(request.getUrl());
startActivity(intent);
return true;
}
}