AlertDialog框相关问题

时间:2018-01-30 17:58:19

标签: java android android-studio

我已经实现了AlertDialog框,当没有互联网时显示没有互联网连接,但是当我尝试点击后退按钮时,AlertDialog框一次又一次地弹出,尽管回到之前的活动Android Studio。我希望当AlertDialog框显示没有互联网连接并且用户点击后退按钮时,它会返回主活动。提前谢谢......

Notify.java

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;

private WebView webview;
private static final String TAG = "Main";
private ProgressDialog progressBar;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.notifyavtivity);

    this.webview = (WebView) findViewById(R.id.webview);

    getSupportActionBar().hide();

    WebSettings webSettings = webview.getSettings();
    webview.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
    webview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    webview.getSettings().setAppCacheEnabled(true);
    webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
    webSettings.setDomStorageEnabled(true);
    webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
    webSettings.setUseWideViewPort(true);
    webSettings.setSaveFormData(true);
    webSettings.setEnableSmoothTransition(true);
    webSettings.setJavaScriptEnabled(true);
    webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

    final AlertDialog alertDialog = new AlertDialog.Builder(this).create();

    progressBar = ProgressDialog.show(notify.this, "Please wait", "Loading...");
    progressBar.setCancelable(true);
    webview.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            Log.i(TAG, "Processing webview url click...");
            view.loadUrl(url);
            return true;
        }

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

        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Log.e(TAG, "Error: " + description);
            webview.loadUrl("about:blank");
            alertDialog.setTitle("Error");
            alertDialog.setMessage("No Internet Connection\nTry Again.");
            alertDialog.setButton("OK", new  DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    return;
                }
            });
            alertDialog.show();
        }
    });
    webview.loadUrl("https://www.google.com");
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {

            case KeyEvent.KEYCODE_BACK:
                if (webview.canGoBack()) {
                    webview.goBack();
                } else {
                    finish();
                }
                return true;
        }

    }

    return super.onKeyDown(keyCode, event);
}

1 个答案:

答案 0 :(得分:0)

更改

DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                return;
            }
        });

DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });