Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Cómo agregar una acción a un mensaje

Puedes agregar una acción a un Snackbar, lo que permite al usuario responder a tu mensaje. Si agregas una acción a un Snackbar, Snackbar coloca un botón junto al texto del mensaje. El usuario puede activar tu acción presionando el botón. Por ejemplo, en una app de correo electrónico, podría ponerse un botón de deshacer en el mensaje "correo electrónico archivado"; si el usuario hace clic en el botón deshacer, la app retira el correo electrónico del archivo.

Figura 1: Esta barra de notificaciones tiene un botón Deshacer, que restablece el elemento que se acaba de quitar

Para agregar una acción a un mensaje Snackbar, debes definir un objeto de escucha que implemente la interfaz View.OnClickListener. El sistema llama al método onClick() de tu objeto de escucha si el usuario hace clic en la acción del mensaje. Por ejemplo, en este fragmento, se muestra un objeto de escucha para una acción de deshacer:

Kotlin

    class MyUndoListener : View.OnClickListener {

      fun onClick(v: View) {
        // Code to undo the user's last action
      }
    }
    

Java

    public class MyUndoListener implements View.OnClickListener {

        @Override
        public void onClick(View v) {

            // Code to undo the user's last action
        }
    }
    

Usa uno de los métodos SetAction() para adjuntar el objeto de escucha a tu Snackbar. Asegúrate de adjuntar el objeto de escucha antes de llamar a show(), como se muestra en este ejemplo de código:

Kotlin

    val mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout),
                                   R.string.email_archived, Snackbar.LENGTH_SHORT)
    mySnackbar.setAction(R.string.undo_string, MyUndoListener())
    mySnackbar.show()
    

Java

    Snackbar mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout),
            R.string.email_archived, Snackbar.LENGTH_SHORT);
    mySnackbar.setAction(R.string.undo_string, new MyUndoListener());
    mySnackbar.show();
    

Nota: Un Snackbar desaparece automáticamente después de un tiempo breve, por lo que no puedes contar con que el usuario vea el mensaje o tenga la oportunidad de presionar el botón. Por este motivo, deberías considerar ofrecer una forma alternativa de realizar cualquier acción Snackbar.