30.12.11

Tutorial Android parte 11: mensajes pop-up Toast en Android

Retomamos los tutoriales Android tras un parón para crear tutoriales Windows Phone 7.

En este tutorial vamos a ver cómo podemos lanzar un mensaje pop-up al usuario como "Ok, la operación se realizó correctamente".

Todos estos mensajes se hacen con la clase Toast y con el método show. Por ejemplo:

Context context = getApplicationContext();
CharSequence text = "Este es un mensaje simple.";
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);
toast.show();


En este método, se crea la notificación con el método makeText que recibe como primer parámetro el contexto. Como segundo parámetro el mensaje que se mostrará al usuario. Y como tercer parámetro establece la duración de tiempo que permanecerá el mensaje en la pantalla. Esta duración puede ser larga (Toast.LENGTH_LONG) o corta (Toast.LENGTH_SHORT).

Una vez creada la notificación la podemos mostrar llamando al método show.

Tenéis el código fuente en la siguiente entrada:

Descargar código fuente del tutorial.


Crear aplicación
Primero abrimos Eclipse. Después seleccionamos:
- Ir a File -> New -> Project.
- Seleccionar un proyecto "Android Project" y pulsar Next.
- Rellenar los campos con los siguientes valores:
      o Project name: ActividadEjemploToast
      o Application name: Ejemplo mensajes Toast
      o Package name: com.example.ejemplotoast
      o Create Activity: ActividadEjemploToast
- Hacer click en Finish.

Ponemos un botón en el fichero res/layout/main.xml que será el que llamará al mensaje pop-up:



Por último sólo nos queda rellenar el código de la clase ActividadEjemploToast, donde pondremos lo siguiente:

package com.example.ejemplotoast;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class ActividadEjemploToast extends Activity {

      private Button btnPopUpSimple;

      OnClickListener mPopUpSimpleListener = new OnClickListener() {
         public void onClick(View v) {
            Context context = getApplicationContext();
            CharSequence text = "Este es un mensaje simple.";
            int duration = Toast.LENGTH_SHORT;
            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
         }
      };


      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

             //boton mensaje pop up simple
            btnPopUpSimple = (Button) findViewById(R.id.botonmensajepopupsimple);
            btnPopUpSimple.setOnClickListener(mPopUpSimpleListener);

      }
}

Básicamente asignamos que cuando se pulse el botón, se lance el mensaje pop up.


Lanzar la aplicación
- Seleccionar Run -> Run.
- Seleccionar Android application.



Y al pulsar el botón lanzará el mensaje popup.





Posicionar el mensaje en la pantalla

Por defecto el mensaje pop up nos aparece en la parte inferior de la pantalla centrado pero podríamos querer cambiarlo. Para ello utilizamos el método setGravity sobre el objeto Toast creado. Este método permite establecer la posición de la pantalla utilizando la constante Gravity (p.ej, Gravity.Left, Gravity.Right, Gravity.Bottom…) seguido de dos valores numéricos que indican el desplazamiento en el eje horizontal y vertical. Por ejemplo:

toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);

Pondría el mensaje pop up en la parte superior izquierda de la pantalla, sin desplazarlo horizontal y ni verticalmente.

En el código vamos a hacer el siguiente cambio:

OnClickListener mPopUpSimpleListener = new OnClickListener() {
      public void onClick(View v) {
            Context context = getApplicationContext();
            CharSequence text = "Este es un mensaje simple.";
            int duration = Toast.LENGTH_SHORT;
            Toast toast = Toast.makeText(context, text, duration);
            toast.setGravity(Gravity.TOP|Gravity.RIGHT, 0, 0);
            toast.show();
            }
      };

Al ejecutar obtendremos que al pulsar el botón, el mensaje aparece en la parte superior derecha de la pantalla:

No comments:

Post a Comment