Documentos de Académico
Documentos de Profesional
Documentos de Cultura
tiempo pero sin congelar la aplicacin. Este mensaje no permite interactuar con el usuario
(no se pueden ingresar datos, seleccionar botones ni obligar a que se cierre)
Eventualmente se lo puede localizar en distintas partes del dispositivo.
Problema:
Confeccionar una aplicacin que muestre una serie de botones y active mensajes de
notificaciones con la clase Toast.
Primero creamos un proyecto llamado: proyecto033
Lo almacenamos en el paquete: androidya.proyecto033
La interfaz visual a implementar son tres botones:
No olvidemos inicializar la propiedad On Click de cada botn con los mtodos: prueba1,
prueba2 y prueba3.
El cdigo fuente de la aplicacin queda como sigue:
package androidya.proyecto033;
import
import
import
import
import
import
android.app.Activity;
android.os.Bundle;
android.view.Gravity;
android.view.LayoutInflater;
android.view.View;
android.widget.Toast;
null);
Para el evento click del primer botn mostramos el mensaje con las estructura ms simple
que nos provee la clase Toast. Definimos un objeto de la clase Toast y llamamos al mtodo
makeText pasando como parmetro la referencia del Activity, el mensaje a mostrar y una
constante indicando si queremos que el mensaje aparezca por un perodo corto o largo de
tiempo en la pantalla. Por ltimo llamamos al mtodo show para que se muestre el mensaje:
public void prueba1(View v) {
Para generar un Toast customizado debemos crear un archivo XML donde creamos
visualmente los controles a mostrar, en este ejemplo creamos el siguiente archivo (crear un
archivo llamado toast1.xml):
Mediante la clase LayoutInflate procedemos a leer el contenido del archivo XML creado
anteriormente y lo enlazamos con el toast mediante el mtodo:
toast.setView(layout);
custom_dialog.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#C8C8C8"
android:gravity="center"
android:orientation="horizontal"
android:padding="10dp" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:src="@android:drawable/ic_dialog_info" />
<TextView
android:id="@+id/text_toast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFF" />
</LinearLayout>
Es importante resaltar que se le debe dar un ID al elemento raz del layout, ya que ser necesario
como veremos a continuacin:
MainActivity.java
Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
(ViewGroup) findViewById(R.id.toast_layout_root));
TextView textToast = (TextView) layout.findViewById(R.id.text_toast);
textToast.setText(text);
Toast toast = new Toast(context);
toast.setDuration(duration);
toast.setView(layout);
toast.show();