android - 如何使用后退按钮在加载之前关闭进度条?

标签 android android-progressbar

我正在使用网页 View 的进度条。我需要在页面加载之前停止进度条。我按下后退按钮,但在加载之间不工作。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         requestWindowFeature(Window.FEATURE_NO_TITLE);
         setContentView(R.layout.webview);
        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        final AlertDialog alertDialog = new AlertDialog.Builder(this).create();

        progressBar =new ProgressDialog(this);
        progressBar.setCancelable(true);
        progressBar.show();


        mWebView.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                Log.i("TEST", "Processing webview url click...");
                view.loadUrl(url);
                return true;
            }

            public void onPageFinished(WebView view, String url) {
                Log.i("TEST", "Finished loading URL: " +url);
                if (progressBar.isShowing()) {
                    progressBar.dismiss();
                }
            }

            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                Log.e("TEST", "Error: " + description);
                Toast.makeText(getApplicationContext(), "Oh no! " + description, Toast.LENGTH_SHORT).show();
                alertDialog.setTitle("Error");
                alertDialog.setMessage(description);
                alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        return;
                    }



                });
                alertDialog.show();
            }
        });
        mWebView.loadUrl("http://www.google.com");
}

对于后退按钮测试,我使用这个

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            Toast.makeText(getApplicationContext(),"hi", Toast.LENGTH_LONG).show();
            return true;
        }

        return super.onKeyDown(keyCode, event);
    }

最佳答案

嗨 请检查一下这个

progressBar = new ProgressDialog(this);
        progressBar.setCancelable(true);
        progressBar.setOnCancelListener(new OnCancelListener() {

            public void onCancel(DialogInterface arg0) {
                 if(progressBar.isShowing())
                      progressBar.dismiss();
                 finish();
            }
        });
            progressBar.setMessage("Loading...");
        progressBar.show();

感谢大家

关于android - 如何使用后退按钮在加载之前关闭进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4898093/

相关文章:

android - 为什么我的 ViewPager 有零宽度和高度的 child ?

android - 在 ActionBar 上设置不确定进度条的样式

java - 无法停止 AsyncTask 中的 ProgressDialog

android - 进度对话框导致 "window leak"

java - 将 ArrayList 转换为字符串以存储在共享首选项中

Android,在熄屏状态下获取位置

android - 如何仅将相机设置为单色(黑白)图像?

android - 异步任务、进度条和 I/O

android - 如何在android中使用水平 "material progressindicator"?

android - 从普通 Activity 启动 FragmentActivity.. java.lang.NoClassDefFoundError