Sunday, 14 September 2014

Exit from Activity with twice "Back" button click

Description: When user presses two times "back" button, he is allow to exit from activity

Complexity Level: Beginner

Keywords: back, back button, android, android studio, alert, onbackpress, twice

      When we are doing some important operation or work on activity and it may possible that by mistake we pressed "back" button. This will simply stop all your important work and you are redirect to previous activity.

     To overcome this situation, we can provide a confirmation to the user that you need to press once again to exit from activity. This will give user a great experience in application.

To add this functionality in you application, use following code snippet.

 @Override  
 public void onBackPressed() {  
   if (doubleBackToExitPressedOnce) {  
     super.onBackPressed();  
     return;  
   }  
   this.doubleBackToExitPressedOnce = true;  
   Toast.makeText(this, "Press once again to exit", Toast.LENGTH_SHORT).show();  
   new Handler().postDelayed(new Runnable() {  
     @Override  
     public void run() {  
       doubleBackToExitPressedOnce=false;              
     }  
   }, 2000);  
 }   

Expatiation:

doubleBackToExitPressedOnce is core of this snippet. When user presses "back" button, value for `doubleBackToExitPressedOnce` is "false" and he will get a message for "Press once again to exit".

If user presses "back" button one more time, he will redirect to previous activity as "doubleBackToExitPressedOnce" is now "true".

Monday, 1 July 2013

Display Alert on Back button Pressed in Android Studio

Description: When user wants to exit from application, he is prompted to exit from application.
Complexity Level: Beginner
Keywords: back, back button, android, android studio, alert, dialog, onbackpress

                Alert means to get user’s input when needed. Most of us played games and when we try to exit it by pressing “Back” button in Android phone, it ask for “Do you really want to exit?”.             So, in this article we are going to learn how to prevent user to exit from application without giving response.

Step 1:
Create a new Project with following parameters.


Step 2:
Open your Main Activity file, in my case it is “BackPressActivity” and paste following code inside.
===============
BackPressActivity
===============
package com.example.alertonbackpressdemo;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class BackPressActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public void onBackPressed() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setCancelable(false);
        builder.setMessage("Do you want to Exit?");
        builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //if user pressed "yes", then he is allowed to exit from application
                finish();
            }
        });
        builder.setNegativeButton("No",new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //if user select "No", just cancel this dialog and continue with app
                dialog.cancel();
            }
        });
        AlertDialog alert=builder.create();
        alert.show();
    }   
}

Let’s understand Alert Dialog and its different methods.
In code there is written “builder.setCancelable(false);” which means that user can’t cancel this dialog by pressing back again or touch outside the alert dialog box and dismiss it. So user has to press one of the options you have provided to him.
Next is “builder.setMessage("Do you want to Exit?");”. Here you can write your own message which will be displayed to user in alert.
builder.setPositiveButton” will set a positive button in left side. Parameter will accept the name of that button as you can see in code is “Yes”. Same thing is set for “builder.setNegativeButton”. When you set these buttons, you need to pass a listener which will be fired when user click one of the button.
Step 3:
Run your application.




Summary
                In this article, we learned “How to show Alert Dialog” and “Show dialog at BACK button pressed”.