【发布时间】:2018-10-22 18:31:53
【问题描述】:
我正在创建一个包含 webview 的 3 个选项卡的应用程序。 WebView 正在加载不同的 url,例如 Amazon、Flipkart 和 Myntra。我想在各自的网站上搜索。为此,我使用 EditText 来获取关键字。来自 EditText(keyword) 的文本被传递给片段,并且 url 应该相应地更改(例如https://www.amazon.com/s/?field-keywords=keyword)。加载 url 时会出现问题。即使在将 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);
请帮忙。
【问题讨论】:
-
您需要发布调用片段的代码并将关键字也发送给它,片段似乎没问题
-
@KaranHarshWardhan 我已经编辑了代码。看看吧。
-
与链接问题中的问题相同。您正在覆盖 url 加载,返回 true 然后尝试加载 url - webview.loadurl(url),这意味着 url 永远不会加载
-
如果我删除 WebViewClient,URL 会加载到浏览器中。我该怎么办?
标签: android webview tabs android-edittext fragment