带有ProgressDialog的Android WebView。我怎么杀它?
我已经尽了我所能杀死它。我想让它做的是加载网页,然后杀死ProgressDialog。怎么办带有ProgressDialog的Android WebView。我怎么杀它?,android,webview,progressdialog,Android,Webview,Progressdialog,我已经尽了我所能杀死它。我想让它做的是加载网页,然后杀死ProgressDialog。怎么办 package com.calebfultz.package; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.View
package com.calebfultz.package;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
public class Lists extends Activity {
private WebView webView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web);
ProgressDialog pd = ProgressDialog.show(Lists.this, "",
"Loading. Please wait...", true);
// Create reference to UI elements
webView = (WebView) findViewById(R.id.web_engine);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://cfultz.tumblr.com");
// workaround so that the default browser doesn't take over
webView.setWebViewClient(new MyWebViewClient()
);
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
您可能希望将ProgressDialog变量作为Lists类的成员变量,并在shouldOverrideUrlLoading方法中添加行
pd.dismiss();
您可能希望将ProgressDialog变量作为Lists类的成员变量,并在shouldOverrideUrlLoading方法中添加行
pd.dismiss();
我认为您可以覆盖MyWebViewClient中的onPageFinished函数:您可以在该函数中关闭ProgressDialog。或者您可以覆盖MyWebChromeClient(扩展WebChromeClient)中的onProgressChanged:当进度为100时,您可以关闭ProgressDialog。我认为您可以覆盖MyWebViewClient中的onPageFinished函数:您可以关闭此函数中的ProgressDialog。或者您可以覆盖MyWebChromeClient(扩展WebChromeClient)中的onProgressChanged:当进度为100时,您可以关闭ProgressDialog。请查看以下代码:
// the init state of progress dialog
mProgress = ProgressDialog.show(this, "Loading", "Please wait for a moment...");
// add a WebViewClient for WebView, which actually handles loading data from web
mWebView.setWebViewClient(new WebViewClient() {
// load url
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
// when finish loading page
public void onPageFinished(WebView view, String url) {
if(mProgress.isShowing()) {
mProgress.dismiss();
}
}
});
这对我来说很好………享受。请查看以下代码:
// the init state of progress dialog
mProgress = ProgressDialog.show(this, "Loading", "Please wait for a moment...");
// add a WebViewClient for WebView, which actually handles loading data from web
mWebView.setWebViewClient(new WebViewClient() {
// load url
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
// when finish loading page
public void onPageFinished(WebView view, String url) {
if(mProgress.isShowing()) {
mProgress.dismiss();
}
}
});
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
//start loading animation
//loading is a ProgressBar type
this.loading.setVisibility(0);
view.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
if(progress >= 100) {
this.loading.setVisibility(8);
}
}
});
这对我来说很好………享受。谢谢。我试过了,但不幸的是,这会立即终止进度对话框,而不是等待页面加载。谢谢。我已经尝试过了,但不幸的是,这只是立即终止了进度对话框,而不是等待页面加载。
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
//start loading animation
//loading is a ProgressBar type
this.loading.setVisibility(0);
view.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
if(progress >= 100) {
this.loading.setVisibility(8);
}
}
});