如何为意图设置OnclickListner

问题描述

我想先在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;
    }
}