Android-如何在单击WebView中的URL时从当前片段活动中打开片段?

时间:2018-10-22 18:47:33

标签: android android-layout android-fragments android-intent

我有一个WebView的片段活动,单击特定的URL时我想在其中打开或重定向到另一个片段。

注意:如果选择了与所需网址不同的其他网址,则应在同一当前片段中打开。

2 个答案:

答案 0 :(得分:1)

您应该覆盖网址加载。 使用类似以下的内容:

webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url.startsWith("your_url")) { //you can also use indexOf, equales etc. 
        // do what's needed
        return true;
    }
    return false;
}

});

答案 1 :(得分:0)

在创建了Web视图代码的on-create处添加this(最好在oncreate方法的末尾添加)

webView.setWebViewClient(new MyWebViewClient());

然后在oncreate之外进行如下的函数调用

private class MyWebViewClient extends WebViewClient {

   @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        if (url.equals("your url here")) {
            Fragment newFragment = YourNewFrag();
            // consider using Java coding conventions (upper first char class names!!!)
            FragmentTransaction transaction = getFragmentManager().beginTransaction();

            // Replace whatever is in the fragment_container(usually a frame layout) view with this fragment,
            // and add the transaction to the back stack
            transaction.replace(R.id.fragment_container, newFragment);
            transaction.addToBackStack(null);

            // Commit the transaction
            transaction.commit();
            return true;
        }
        return false;
    }
}