我想做的是进度对话框等待加载项目webview。我该怎么做dialog.dismiss()
事件取决于加载项目webview?
public class asynctask extends AsyncTask<Void, Void, Void> {
private ProgressDialog dialog = new ProgressDialog(WebActivity.this);
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
在那里我该怎么做?
dialog.dismiss();
对话框无需等待就消失
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
dialog.setMessage("Loading..Please wait.");
dialog.show();
dialog.setCanceledOnTouchOutside(false);
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webView1);
Bundle extras = getIntent().getExtras();
String url=extras.getString("adres");
webView.setWebViewClient(new WebViewClient());
webView.loadUrl(url);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
new asynctask().execute();
}
不要使用 AsyncTask,因为您不负责加载 webview。如果您想显示进度对话框,请按以下步骤操作。
private ProgressDialog dialog = new ProgressDialog(WebActivity.this);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webView1);
Bundle extras = getIntent().getExtras();
String url=extras.getString("adres");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if (dialog.isShowing()) {
dialog.dismiss();
}
}
});
dialog.setMessage("Loading..Please wait.");
dialog.setCanceledOnTouchOutside(false);
dialog.show();
webView.loadUrl(url);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
}
这个想法是,您显示对话框,开始加载 url,当 Web 客户端看到页面已完成加载时,它会关闭对话框。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)