0
進捗状況ダイアログが表示されたwebviewがあります。 すべてがうまくいきます、進捗ダイアログはとてもうまく動作し、ページが読み込まれると閉じることができます。Android Progress Dialogを呼び出した後に電話をかける - WebView
私の質問は次のとおりです。 ダイアログが閉じたりキャンセルしたりしたときに再開ダイアログを再開するにはどうすればいいですか? 戻るボタンを押すと、別のページに移動するたびに進捗ダイアログが再び表示されません。
ありがとうございました。
myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (progressDialog == null) {
// in standard case YourActivity.this
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Please wait...");
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
}
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
try {
if (progressDialog .isShowing()) {
progressDialog .dismiss();
progressDialog = null;
}
} catch (Exception exception) {
exception.printStackTrace();
}
}
@Override
public void onLoadResource (WebView view, String url) {
}
public void onPageStarted(WebView webView, String url, Bitmap favicon) {
super.onPageStarted(webView, url, favicon);
if (progressDialog == null) {
// in standard case YourActivity.this
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Loading...");
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
}
}
});
myWebView.loadUrl("http://myweb.net");
...
@Override
public void onBackPressed() {
try {
if (progressDialog .isShowing()) {
progressDialog .dismiss();
}
} catch (Exception exception) {
exception.printStackTrace();
}
if (myWebView.canGoBack()) {
myWebView.goBack();
} else {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Press back twice for exit.", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
}
は機能しません。戻るボタンを押すと、myWebView.setWebViewClient(new WebViewClient()を再度呼び出さないようです。 – Bonnie7