首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >进度对话框无法停止

进度对话框无法停止
EN

Stack Overflow用户
提问于 2012-12-15 15:42:20
回答 4查看 1.6K关注 0票数 4

我刚开始使用android.I。我在我的应用程序中使用进度对话框,但它无法连接我的应用程序我正在使用webview.In第一个活动我有连接button.In第二个活动连接到available.In代码是available.In第二个活动代码:

代码语言:javascript
运行
复制
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.facebook);
    wvFacebook.setWebViewClient(new MyWebViewClient()); 
    wvFacebook.loadUrl(strFacebook);
} 

private class MyWebViewClient extends WebViewClient 
{            
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    {
        view.getSettings().setJavaScriptEnabled(true);
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {

        super.onPageStarted(view, url, favicon);
        prDialog = ProgressDialog.show(getParent(), "In progress", "Loading, please wait...");
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        Log.e("status","calling....");
        super.onPageFinished(view, url);
        prDialog.dismiss();
        Log.e("status","calling next......");
    }
}

当连接按钮被点击时,第二个活动将被执行,获取facebook page.But进度对话框不能停止。

EN

回答 4

Stack Overflow用户

发布于 2012-12-15 16:20:02

试着这样做

onCreate()中的第一个创建对话框

代码语言:javascript
运行
复制
ProgressDialog progressDialog =new  ProgressDialog(getApplicationContext());
progressDialog.setMessage("Please Wait");

然后用onPageStarted()方法显示对话框。

代码语言:javascript
运行
复制
progressDialog .show();

然后在您的onPageFinished()方法中忽略它

代码语言:javascript
运行
复制
progressDialog.cancel();
票数 1
EN

Stack Overflow用户

发布于 2012-12-15 20:17:30

你不应该在onPageStart中创建对话框,当加载一个网页时,onPageStart()可能会被多次调用。

在您的onPageStart中,您可以在不关闭旧对话框的情况下创建新的对话框,因此将始终显示旧的对话框。

要解决此问题,您有许多选择:

  1. 正如lmran所说,在onCreate()中只创建一次对话框。在onPageStarted中显示对话框并在onPageFinished.
  2. Before中取消创建新对话框,取消旧对话框。
票数 0
EN

Stack Overflow用户

发布于 2012-12-15 21:03:20

只需使用这段代码,并尝试它,

代码语言:javascript
运行
复制
@Override
        public void onPageFinished(WebView view, String url) {
            Log.e("status","calling....");
            super.onPageFinished(view, url);
            if (prDialog != null || prDialog.isShowing())
                prDialog.dismiss();
            Log.e("status","calling next......");
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13890384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档