我正在尝试将网址加载到网页视图中。如果有互联网连接,则应将其加载到webview。否则,应显示再次尝试屏幕。在再次尝试屏幕中,我再试一次按钮。如果我们点击它,则应该再次加载该URL。但是使用我已经完成的代码,当我尝试通过点击“再试一次”按钮重新加载网址时,应用程序会一直崩溃(即使我打开网络或者它仍然关闭)。这是我的代码
tryAgainButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tryAgainLayout.setVisibility(View.GONE);
browser = (WebView)findViewById(R.id.webView1);
open(browser);
}
});
private void open(View view){
browser.getSettings().setLoadsImagesAutomatically(true);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setAppCacheEnabled(true);
browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
browser.getSettings().setSupportMultipleWindows(true);
browser.setWebViewClient(new MyBrowser());
browser.setWebChromeClient(new MyCustomChromeClient());
mContext=this.getApplicationContext();
browser.loadUrl(target_url);
MainActivity.this.progressBar.setProgress(0);
browser.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
}
});
}
如何在点击“再试一次”按钮时重新加载页面。
答案 0 :(得分:1)
这里有一点假设,因为没有logcat:
编辑简单的解决方案:创建一个侦听器类并将webView作为参数传递给构造函数,以便它知道要重新加载的内容。
class WebViewReloader implements View.OnClickListener{
private WebView browser = null;
public WebViewReloader(WebView target){
browser = target;
}
@Override
public void onClick(View view) {
tryAgainLayout.setVisibility(View.GONE);
browser.reload();
}
}
然后
tryAgainButton.setOnClickListener(new WebViewReloader(browser));
其他解决方案:使用WebView的静态引用,或通过搜索其父布局来检索WebView。