Output warning in WebView

1

I'm very new to android, so I did my application through Android Studio using WebView, but I'm having a question, when I press the Android back button it's already quit the app, I'd like to add that warning: do you want to leave?)

AndroidActivy.java:

package com.sirseni.simpleandroidwebviewexample;

import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView myWebView = (WebView) findViewById(R.id.myWebView);
        myWebView.loadUrl("http://192.99.73.131/");

        myWebView.setWebViewClient(new MyWebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return false;
            }

        });

        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);

    }

    // Use When the user clicks a link from a web page in your WebView
    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (Uri.parse(url).getHost().equals("http://192.99.73.131/")) {
                return false;

            }

            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);
            return true;
        }
    } }

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sirseni.simpleandroidwebviewexample">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:screenOrientation="portrait"
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
    
asked by anonymous 07.06.2017 / 18:53

2 answers

1

In your activity, overwrite the onBackPressed method, do not know how? It's like this:

@Override
public void onBackPressed() {

// Ai você precisa criar uma AlertDialog
confirmarSaida();

}

private void confirmarSaida() {

    //Criamos o componente AlertDialog, que nada mais é do que um "pop up".

    AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
    builder.setTitle("titulo da janela"); // Ex: Aviso!
    builder.setMessage("mensagem da janela"); //Ex: Deseja realmente sair?
    builder.setNegativeButton("Não", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {

            dialogInterface.dismiss();

        }
    });
    builder.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {

            //Aqui você implementa o código para sair do app

        }
    });

    //Mostramos o componente alert dialog
    builder.show();


}

Remembering that for best practices on the android platform, your strings should be defined in the "strings.xml" file within the "values" folder of your project.

    
07.06.2017 / 23:52
1

You can create a AlertDialog by setting the setPositiveButton() and setNegativeButton() within the method onBackPressed() in your Activity . Within the setPositiveButton () method you enter the code to finalize your application, such as the finish (). See the full code below:

@Override
public void onBackPressed() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Tem certeza que deseja sair?")
    .setCancelable(false)
    .setPositiveButton("Sim", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {

            //Este método faz com que o usuario saia da aplicação 
            finish();
        }
    })
    .setNegativeButton("Não", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
        }
    });
    AlertDialog alert = builder.create();
    alert.show();
}
    
07.06.2017 / 18:58