jca*_*uso 0 android back-button progress-bar
所以我在单击列表视图中的记录后尝试加载URL,然后打开一个新活动.一切都很好......除了progressBar显示后退按钮被禁用.我想启用它以便它可以做到finish()
private void loadWebView(String url) {
WebSettings settings = web.getSettings();
settings.setJavaScriptEnabled(true);
web.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
progressBar = ProgressDialog.show(OtherDetailActivity.this, "Please Wait", "Loading Website...");
web.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.i(Utils.TAG, "Processing webview url click...");
view.loadUrl(url);
return true;
}
public void onPageFinished(WebView view, String url) {
if (progressBar.isShowing()) {
progressBar.dismiss();
}
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Log.e(Utils.TAG, "Error: " + description);
AlertDialog.Builder builder = new AlertDialog.Builder(OtherDetailActivity.this);
builder.setTitle("Error")
.setMessage(description)
.setCancelable(false)
.setNegativeButton("Close",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
web.loadUrl(url);
}
Run Code Online (Sandbox Code Playgroud)
您需要设置ProgressDialog为cancelable(true).
progressBar.setCancelable(true);
Run Code Online (Sandbox Code Playgroud)
setCancelable设置此对话框是否可以使用BACK键取消
如果您需要关闭Activity时,Progress dialog dismiss上BACK键,添加监听像这样和finish的Activity.
progressBar.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
finish();
}
});
Run Code Online (Sandbox Code Playgroud)
由于OnDismissListener通常会在所有对话框dismiss条件下调用,因此您可以设置OnCancelListener仅在对话框中调用时才调用的条件cancelled
progressBar.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
finish();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
571 次 |
| 最近记录: |