点击Webview加载的Android进度对话框 - 空白屏幕
问题描述:
我试图在加载Webview中的内容时显示progressDialog。完成后,progressDialog将被解除。点击Webview加载的Android进度对话框 - 空白屏幕
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient(){
@Override
public void onLoadResource (WebView view, String url) {
//show progress bar
if (progressDialog == null) {
progressDialog = new ProgressDialog(activity);
progressDialog.setMessage("Loading please wait...");
progressDialog.show();
}
}
@Override
public void onPageFinished(WebView view, String url) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
}
});
}
我有2个测试设备Android 2.3.6和Android 4.0。在Android 2.3.6中,完全没有问题。对于Android 4.0平板电脑,在显示进度对话框的同时,点击它将隐藏或移除progressDialog,并使屏幕变为空白。
我的progressDialog有什么问题?
感谢
答
试试这个为网页视图客户
webView.setWebViewClient(new WebViewClient(){
@Override
public void onLoadResource (WebView view, String url) {
//show progress bar
if (progressDialog == null) {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Loading please wait...");
progressDialog.show();
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.setCancelable(false);
}
}
@Override
public void onPageFinished(WebView view, String url) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
}
});
答
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView webview = (WebView) findViewById(R.id.webView1);
webview.loadUrl("http://google.com");
final ProgressDialog pd = ProgressDialog.show(this, "please wait", "Loading...");
webview.getSettings().setBuiltInZoomControls(true);
webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onPageFinished(WebView view, String url) {
if (pd.isShowing()) {
pd.dismiss();
}
}
});
}