AlertDialog simple
Ya se encuentra disponible el nuevo tutorial para aprender android con el nuevo entorno
Android Studio propuesto por Google y que remplaza a Eclipse.
El diálogo más simple que podemos crear con Android en una ventana con un título, un
mensaje y un botón para cerrarlo.
Muy útil si tenemos que informar al usuario y no queremos que la ventana desaparezca
hasta que el usuario presione un botón para ocultar el diálogo.
Problema:
Confeccionar una aplicación que muestre un diálogo cada vez que se inicie la aplicación
informando que el programa que está ejecutando es un programa de prueba y no el
completo.
Primero creamos un proyecto llamado: proyecto031
Lo almacenamos en el paquete: androidya.proyecto031
El código fuente de la aplicación queda como sigue:
package androidya.proyecto021;
import [Link];
import [Link];
import [Link];
public class Proyecto031Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link]);
[Link] builder = new [Link](this);
[Link]("Importante");
[Link]("Este es un programa solo de prueba y no la
versión completa");
[Link]("OK",null);
[Link]();
[Link]();
}
}
Como queremos que el diálogo aparezca inmediatamente se arranque la aplicación
procedemos a incorporar el código en el método onCreate.
Primero debemos importar la clase AlertDialog:
import [Link];
La clase AlertDialog contiene otra clase llamada Builder que es la que encapsula la
creación de objetos de la clase AlertDialog. Procedemos a definir y crear un objeto de la
clase Builder contenida en la clase AlertDialog:
[Link] builder = new [Link](this);
Una vez creado el objeto procedemos a llamar al método que define el título a mostrar en el
diálogo:
[Link]("Importante");
El mensaje propiamente dicho lo configuramos llamando al método setMessage:
[Link]("Este es un programa solo de prueba y no la
versión completa");
Mostramos un botón para poder cerrar el diálogo:
[Link]("OK",null);
Finalmente llamamos al método que crea el diálogo y el que lo visualiza:
[Link]();
[Link]();
La interfaz visual del diálogo en tiempo de ejecución es:
AlertDialog con botones de confirmar y
cancelar
Ya se encuentra disponible el nuevo tutorial para aprender android con el nuevo entorno
Android Studio propuesto por Google y que remplaza a Eclipse.
Problema:
Confeccionar una aplicación que muestre un diálogo cada vez que se inicie la aplicación
informando: "¿Acepta la ejecución de este programa en modo prueba?" y dos botones para
confirmar o rechazar. En caso que se rechace finalizar la ejecución del programa.
Primero creamos un proyecto llamado: proyecto032
Lo almacenamos en el paquete: androidya.proyecto032
El código fuente de la aplicación queda como sigue:
package androidya.proyecto032;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class Proyecto032Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link]);
[Link] dialogo1 = new [Link](this);
[Link]("Importante");
[Link]("¿ Acepta la ejecución de este programa en
modo prueba ?");
[Link](false);
[Link]("Confirmar", new
[Link]() {
public void onClick(DialogInterface dialogo1, int id) {
aceptar();
}
});
[Link]("Cancelar", new
[Link]() {
public void onClick(DialogInterface dialogo1, int id) {
cancelar();
}
});
[Link]();
}
public void aceptar() {
Toast t=[Link](this,"Bienvenido a probar el programa.",
Toast.LENGTH_SHORT);
[Link]();
}
public void cancelar() {
finish();
}
}
Creamos un objeto de la clase AlertDialog a través de la clase Builder:
[Link] dialogo1 = new [Link](this);
Configuramos el título del diálogo:
[Link]("Importante");
Configuramos el mensaje del diálogo:
[Link]("¿ Acepta la ejecución de este programa en
modo prueba ?");
Evitamos que el diálogo sea salteado por cualquier medio distinto a presionar alguno de los
dos botones:
[Link](false);
Llamamos al método setPositiveButton indicando el texto a mostrar en el botón y la clase
anónima que capturará el evento clic del botón:
[Link]("Confirmar", new
[Link]() {
public void onClick(DialogInterface dialogo1, int id) {
aceptar();
}
});
De forma similar procedemos con el botón de cancelar:
[Link]("Cancelar", new
[Link]() {
public void onClick(DialogInterface dialogo1, int id) {
cancelar();
}
});
Mostramos el diálogo:
[Link]();
Definimos los métodos del Activity que se llamaran desde las clases anónimas:
public void aceptar() {
Toast t=[Link](this,"Bienvenido a probar el programa.",
Toast.LENGTH_SHORT);
[Link]();
}
public void cancelar() {
finish();
}
La interfaz del diálogo es similar a esta:
Notificaciones o mensajes mediante la
clase Toast
Ya se encuentra disponible el nuevo tutorial para aprender android con el nuevo entorno
Android Studio propuesto por Google y que remplaza a Eclipse.
La clase Toast nos permite mostrar un mensaje superpuesto a la ventana por un período de
tiempo pero sin congelar la aplicación. 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 aplicación 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 botón con los métodos: prueba1,
prueba2 y prueba3.
El código fuente de la aplicación queda como sigue:
package androidya.proyecto033;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class Proyecto033Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link]);
}
public void prueba1(View v) {
Toast toast = [Link](this, "Mensaje 1",
Toast.LENGTH_SHORT);
[Link]();
}
public void prueba2(View v) {
Toast toast = [Link](this, "Mensaje 2",
Toast.LENGTH_SHORT);
[Link](Gravity.CENTER_VERTICAL, 0, 0);
[Link]();
}
public void prueba3(View v) {
LayoutInflater inflater = getLayoutInflater();
View layout = [Link]([Link].toast1, null);
Toast toast = new Toast(getApplicationContext());
[Link](Gravity.CENTER_VERTICAL, 0, 0);
[Link](Toast.LENGTH_LONG);
[Link](layout);
[Link]();
}
}
Para el evento click del primer botón mostramos el mensaje con las estructura más simple
que nos provee la clase Toast. Definimos un objeto de la clase Toast y llamamos al método
makeText pasando como parámetro la referencia del Activity, el mensaje a mostrar y una
constante indicando si queremos que el mensaje aparezca por un período corto o largo de
tiempo en la pantalla. Por último llamamos al método show para que se muestre el mensaje:
public void prueba1(View v) {
Toast toast = [Link](this, "Mensaje 1",
Toast.LENGTH_SHORT);
[Link]();
}
Si queremos ubicar en otra parte de la pantalla debemos llamar al método setGravity e
indicar en el primer parámetro una constante (en este ejemplo lo centramos verticalmente)
En el segundo y tercer parámetro de setGravity podemos desplazarlo una cantidad de
píxeles hacia derecha o izquierda, arriba o abajo según indiquemos valores positivos o
negativos.
Luego el método completo para este segundo Toast es:
public void prueba2(View v) {
Toast toast = [Link](this, "Mensaje 2",
Toast.LENGTH_SHORT);
[Link](Gravity.CENTER_VERTICAL, 0, 0);
[Link]();
}
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 [Link]):
Este recurso luego lo incorporamos en el Toast mediante el siguiente código:
public void prueba3(View v) {
LayoutInflater inflater = getLayoutInflater();
View layout = [Link]([Link].toast1,null);
Toast toast = new Toast(getApplicationContext());
[Link](Gravity.CENTER_VERTICAL, 0, 0);
[Link](Toast.LENGTH_LONG);
[Link](layout);
[Link]();
}
Mediante la clase LayoutInflate procedemos a leer el contenido del archivo XML creado
anteriormente y lo enlazamos con el toast mediante el método:
[Link](layout);
En pantalla luego el Toast customizado aparece de la siguiente forma: