我正在创建一个包含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);
请帮助。
答案 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);