我正在使用下面的代码
class CustomWebViewClient extends WebViewClient {
Context context;
ProgressDialog pd = null;
public CustomWebViewClient (Context c){
context = c;
}
public void onPageFinished(WebView view, String url){
pd.dismiss();
}
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
pd = ProgressDialog.show(context, "", "pageload. Please wait...", true);
view.loadUrl(url);
return true;
}
}
当我单击 WebView 中的链接时,对话框出现并且页面开始加载,但是当页面加载完成时,对话框仍在屏幕上。显然代码很简单,但我想不通。另外,我想我应该补充一点,被点击的链接有一些重定向,但我不确定这是否与这里的原因有关。
我怎样才能正确地做到这一点?
最佳答案
Steven & Sander,尝试关闭 Handler 中的进度对话框
像这样:
class pdHandler extends Handler {
@Override
public void handleMessage(Message msg) {
if(pd != null)
{
pd.dismiss();
pd = null;
}
}
然后在 onPageFinished 中调用您的处理程序:
public void onPageFinshed(WebView view, String url){
pdHandler.sendEmptyMessage(0);
}
你已经完成了!
关于java - Android Webview 加载对话框未被关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3205056/