0

您好,我有一个 Android 应用程序,在我的应用程序 webview 中,我尝试制作 ProgressDilog。当网站正在加载时,在活动标题中每件事都很好,但在进度对话框中我无法停止它。这是我的代码:

mainWebView.setWebChromeClient(new WebChromeClient() {


           public void onProgressChanged(WebView view, int progress)
            {
                activity.setTitle("Loading...");
                activity.setProgress(progress * 100);
                 progressDialog = ProgressDialog.show(MainActivity.this, "", "Loading...");



                if(progress == 100)
                {   
                  activity.setTitle(mainWebView.getTitle());
                      progressDialog.dismiss();
                }   


            }


        });

但是progressDialog.dismiss(); 不工作:(

4

3 回答 3

4

我认为你应该PD.show()只做一次,而不是每次onProgressChanged()。您可能有十几个 PD 正在运行。

编辑:更准确地说:pd.show()当你开始你正在做的事情时,你会做。在onProgressChanged()你用一些内容(加载百分比或其他)更新你的进度条setProgress()

于 2012-08-16T12:09:19.180 回答
1

请参阅这个简单的演示,它将在每个步骤中显示 ProgressDialog。

public class AsyntaskActivity extends Activity {
 final Activity activity = this;
 private WebView webView; 
 private AlertDialog alert; 
 private Builder builder;
 protected void onCreate(Bundle savedInstanceState) {     
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.main);
     webView = (WebView)findViewById(R.id.tview);

     webView.setWebViewClient(new WebViewClient(){          
         @Override         
         public void onLoadResource(WebView view, String url) {             
             super.onLoadResource(view, url);         
         }          
         @Override         
         public void onPageFinished(WebView view, String url) {             
             super.onPageFinished(view, url);             
             alert.setTitle("Finish Loading. . ."); 
             alert.dismiss();
         }          
         @Override         
         public void onPageStarted(WebView view, String url, Bitmap favicon) {             
             super.onPageStarted(view, url, favicon);             
             alert.setTitle("Start Loading. . . ");         
        }      
    });     
     webView.setWebChromeClient(new WebChromeClient(){});     
     webView.loadUrl("http://www.google.com");     
     builder=new AlertDialog.Builder(this);     
     builder.setTitle("Loading...");     
     alert=builder.create();     
     alert.show(); 
} 

@Override protected void onDestroy() {     
    super.onDestroy();  
}  
@Override protected void onPause() {     
    super.onPause(); 
} 

}

于 2012-08-16T13:40:40.097 回答
0
public void onProgressChanged(WebView view, int progress)
        {
            activity.setTitle("Loading...");
            activity.setProgress(progress + 100);
             progressDialog = ProgressDialog.show(MainActivity.this, "", "Loading...");



            if(progress == 100)
            {   
              activity.setTitle(mainWebView.getTitle());
                  progressDialog.dismiss();
            }   


        }


    });
于 2012-08-16T12:29:16.077 回答