/ Android

Mostrar Mensajes al Usuario con Toast (Fragment, Activity, Adapter)

Los Toast son una forma sencilla de mostrar mensajes al usuario y su implementación no es tan complicada.

Estructura del toast

  • Requiere de un contexto.
  • Un texto (String).
  • Tiempo de duración (corta LENGTH_SHORT, larga LENGTH_LONG).
Toast.makeText(contexto, "Mensaje del toast", duración).show();

Ejemplos

Vamos a realizar el código para ejecutar un Toast en tres posibles escenarios, como son Activity, Fragments, Adapters.

Mostrar Toast en una Activity

El código para mostrar un Toast en una actividad es el siguiente.

Toast.makeText(getApplicationContext(), "Hola soy un Toast", Toast.LENGTH_SHORT).show();

O

Toast.makeText(this, "Hola soy un Toast", Toast.LENGTH_SHORT).show();

Si son observadores lo único que cambia es el contexto, el primero es getApplicationContext() y el segundo this, pero ambos funcionan ya que se refieren al mismo contexto.

Mostrar Toast en un fragment

Para crear un Toast en un fragment, lo único que cambiaría seria el contexto.

Como veíamos anteriormente para mostrar un Toast en una activity se colocaba en el contexto getApplicationContext() o this, pero en un fragment eso es diferente.

Toast.makeText(getActivity(), "Hola soy un Toast", Toast.LENGTH_SHORT).show();

Mostrar Toast en un adapter

Para crear un toast en un adapter lo que aremos sera utilizar el contexto del adater.

private Context mContext;

Toast.makeText(mContext, "Hola soy un Toast", Toast.LENGTH_SHORT).show();


Toast personalizado

Para crear nuestro Toast personalizado, vamos a crear un layout donde definiremos nuestros widgets.

XML

El nombre del layout es toast_personalizado.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/custom_toast_container"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="8dp"
              android:background="#DAAA"
    >
    <ImageView android:src="@android:drawable/ic_delete"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_marginEnd="8dp"
        />
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textColor="#FFF"
        />
</LinearLayout>

Código

Con este código ya tendremos implementado nuestro Toast personalizado.

LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_personalizado,
        (ViewGroup) findViewById(R.id.custom_toast_container));

TextView mensajeToast = (TextView) layout.findViewById(R.id.text);

mensajeToast.setText("Registro eliminado");

Toast toast = new Toast(getApplicationContext());
//Propiedad que define la posición donde se mostrará el Toast
toast.setGravity(Gravity.BOTTOM, 0, 0);

toast.setDuration(Toast.LENGTH_LONG);

toast.setView(layout);

toast.show();
Luis Rene Mas Mas

Luis Rene Mas Mas

Soy desarrollador front-end, me encanta las nuevas tecnologías web, administrar este blog es mi pasatiempo favorito.

Leer Más