Desarrollo en Android T12 - Cerrar un App y Mensajes con Botones
1. Para atrapar el botón Back simplemente se sobre escribe el método onBackPressed, y se llama al método que mostrará el mensaje de dialogo.
@Override
public void onBackPressed() {
MessageButtonOkCancel("Eventos", "¿Desea cerrar la App?", "Aceptar", "Cancelar");
}
public void onBackPressed() {
MessageButtonOkCancel("Eventos", "¿Desea cerrar la App?", "Aceptar", "Cancelar");
}
2. El primer paso es crear un objeto de tipo AlertDialog, como el utilizado para mostrar un mensaje.
AlertDialog.Builder alertDialog= new AlertDialog.Builder(this);
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.setTitle(title);
alertDialog.setMessage(message);
3. De forma similar a la utilizada para establecer el titulo y el mensaje, se crea el botón para Aceptar implementando el método setPositiveButton el cual recibirá como parámetro un texto y un DialogInterface que permite generar un nuevo onClickListener para atrapar el evento click que se produce al presionar el botón.
Dentro del evento onClick se programa la acción que se realizará, o se pueden llamar a un método programado previamente.
alertDialog.setPositiveButton(aceptText, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface alertDialog, int id) {
finish();
}
});
public void onClick(DialogInterface alertDialog, int id) {
finish();
}
});
4. Para el botón cancelar se implementa el método setNegativeButton, con lo que también se crear un Listener y un método onClick.
alertDialog.setNegativeButton(cancelText, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface alertDialog, int id) {
}
});
alertDialog.show();
}
public void onClick(DialogInterface alertDialog, int id) {
}
});
alertDialog.show();
}
5. A continuación se muestra el método MessageButtonOkCancel que se crea para ejecutarlo cuando el usuario presione el botón Back, y en lugar de que se cierre la aplicación esta muestre un mensaje y dependiendo de la respuesta del usuario se cierra o no la App.
public void MessageButtonOkCancel(String title, String message, String aceptText, String cancelText){
AlertDialog.Builder alertDialog= new AlertDialog.Builder(this);
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.setCancelable(false);
alertDialog.setPositiveButton(aceptText, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface alertDialog, int id) {
finish();
}
});
alertDialog.setNegativeButton(cancelText, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface alertDialog, int id) {
}
});
alertDialog.show();
}
AlertDialog.Builder alertDialog= new AlertDialog.Builder(this);
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.setCancelable(false);
alertDialog.setPositiveButton(aceptText, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface alertDialog, int id) {
finish();
}
});
alertDialog.setNegativeButton(cancelText, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface alertDialog, int id) {
}
});
alertDialog.show();
}
6. El resultado de ejecutar la aplicación se puede apreciar en la siguiente imagen.
Comentarios