带有Webview的多个标签

时间:2018-10-22 18:31:54

标签: android webview tabs android-edittext fragment

我正在创建一个包含3个包含webview的选项卡的应用程序。 WebView正在加载不同的URL,例如Amazon,Flipkart和Myntra。我想在各个站点中搜索。为此,我使用EditText来获取关键字。来自EditText(keyword)的文本将传递到片段,并且应该相应地更改url(例如https://www.amazon.com/s/?field-keywords=keyword)。 url加载时出现问题。即使将url与关键字连接后,网址也不会更改。片段每次都加载相同的URL。  这是片段代码。

onButtonClick方法

    //calling the Adapter again
    String value = et.getText().toString();
    webViewAdapter = new WebViewAdapter(getSupportFragmentManager(),this,value);
    vp.setAdapter(webViewAdapter);

适配器代码

@Override
public Fragment getItem(int i) {
    Bundle args = new Bundle();
    args.putString("search_term",key);
    switch (i)
    {
        case 0:
            AmazonFragment amazonFragment = new AmazonFragment();
            amazonFragment.setArguments(args);
            return amazonFragment;
        case 1:
            //similar to case 1
        case 2:
            //similar to case 1
    }
    return null;
}

片段代码

    String url = "https://www.amazon.com/s/?field-keywords=";
    Bundle args = getArguments();
    keyword = args.getString("search_term");
    if(keyword == null)
        keyword = "";
    View v = inflater.inflate(R.layout.webview_fragment,container,false);
    webView = v.findViewById(R.id.webview);
    url =  url.concat(keyword);
    webView.setWebViewClient(new WebViewClient(){

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            handler.proceed(); // Ignore SSL certificate errors
        }
    });

    webView.getSettings().setLoadsImagesAutomatically(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    webView.loadUrl(url);

请帮助。

2 个答案:

答案 0 :(得分:0)

更简单的方法是从活动到具有值的片段之间进行接口回调,并使用修改后的数据更新片段中的网页视图

String URL = existingUrl + searchValue;
webView.loadUrl(URL)

答案 1 :(得分:0)

删除了对urlloading的覆盖,它应该可以正常工作

 Bundle args = getArguments();
    keyword = args.getString("search_term");
    if(keyword == null)
        keyword = "";
    View v = inflater.inflate(R.layout.webview_fragment,container,false);
    webView = v.findViewById(R.id.webview);
    url =  url.concat(keyword);
    webView.setWebViewClient(new WebViewClient(){
    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        handler.proceed(); // Ignore SSL certificate errors
    }
});

webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.loadUrl(url);