Upload
nicolas-toro
View
224
Download
0
Embed Size (px)
DESCRIPTION
curso android
Citation preview
En esta actividad vamos a prácticar con dos formas de crear respuestas a eventos de la interfaz: mediante clases anónimas y haciendo que la actividad implemente el escuchador.
En este ejercicio vamos a utilizar como base el siguiente proyecto. Vamos a dotar de interacción al formulario de la actividad MainActivity. Por un lado vamos a validar los contenidos en cada campo cuando el usuario cambia el foco del campo (evento onFocusChange). Por otro lado, cada vez que se dé al botón "validar" se comprobará la validez de todos los campos y cuando se apriete el botón "borrar" se eliminará el contenido de todos los campos. Esto se llevará a cabo utilizando el método onClick().
Tras completar esta actividad serás capaz de:
1. Utilizar clases anónimas escuchadoras para responder a eventos en la interfaz.
2. Implementar los escuchadores a través de la clase Activity.
3. Enumerar algunos de los eventos más utilizados
El proyecto que usaremos como base tiene marcados los cambios que hay que realizar con la palabra CAMBIO.
Es recomendable que pruebes en Android Studio las implementaciones realizadas antes de responder.
CAMBIO 1 (3/3 puntos)Se debe crear un escuchador anónimo y asignarlo al botón bBorrar. Para ello busca el texto "CAMBIO 1" en el código de MainActivity.java. A continuación sustituye las cadenas CAMBIO_1a, CAMBIO_1b y CAMBIO_1c por lo que corresponda para que se asigne adecuadamente un escuchador de tipo onClick al botón bBorrar. Finalmente quita los comentarios de esa parte del código para que funcione.
Indica el nombre de la clase anónima que sustituye a CAMBIO_1a (con o sin paréntesis)
OnClickListener - CorrectoOnClickListener o OnClickListener()
Indica el nombre del método que sustituye a CAMBIO_1b (sin paréntesis)
onClick - Correcto OnClick
Indica el nombre del método que sustituye a CAMBIO_1c (sin paréntesis)
setOnClickListener - Correcto setOnClickListenerEXPLICACIÓN
La respuesta correcta es OnClickListener, onCLick y
setOnClickListener. El código debe quedar como sigue:
OCULTAR RESPUESTA Usted ha realizado 1 de 2 intentos de envío
CAMBIO 2 (2/2 puntos)
OnClickListener
onClick
setOnClickListener
Se debe crear un escuchador anónimo y asignarlo al botón bValidar en una única línea. Para ello busca el texto "CAMBIO 2" en el código de MainActivity.java. A continuación sustituye las cadenas CAMBIO_2a y CAMBIO_2b por lo que corresponda para que se asigne adecuadamente un escuchador de tipo onClick al botón bValidar. Finalmente quita los comentarios de esa parte del código para probarlo.
Indica el nombre de la interfaz implementada por la clase anónima que sustituye a CAMBIO_2a (con o sin paréntesis)
OnClickListener - Correcto OnClickListener o OnClickListener()
Indica el nombre del método que sustituye a CAMBIO_2b (sin paréntesis)
onClick - Correcto OnClickEXPLICACIÓN
La respuesta correcta es OnClickListener y onCLick. El código debe
quedar como sigue:
OCULTAR RESPUESTA Usted ha realizado 1 de 2 intentos de envío
CAMBIO 3
OnClickListener
onClick
(2/2 puntos)Ahora vamos a hacer que la actividad MainActivity implemente los métodos necesarios para dar respuesta a eventos de cambio de foco. Estos eventos se gestionan con el método onFocusChange() de onFocusChangeListener. Debes sustituir las cadenas CAMBIO_3a y CAMBIO_3b dentro del fichero MainActivity.java por lo que corresponda para que la actividad pueda responder a estos eventos. Finalmente quita los comentarios de esa parte del código.
Indica el nombre de la interfaz implementada por la clase anónima que sustituye a CAMBIO_3a (sin paréntesis)
OnFocusChangeListener - Correcto OnFocusChangeListener
Indica el nombre del método que sustituye a CAMBIO_3b (sin paréntesis)
onFocusChange - Correcto onFocusChangeEXPLICACIÓN
La respuesta correcta es OnFocusChangeListener y onFocusChange().
El código debe quedar como sigue para la primera parte:
y como sigue para la segunda:
OnFocusChangeListener
onFocusChange
OCULTAR RESPUESTA Usted ha realizado 1 de 2 intentos de envío
CAMBIO 4 (1/1 punto)El escuchador que se ha implementado en el paso anterior no está asignado a ninguna vista de la interfaz. Lo que vamos a hacer ahora es asignarlo a todos los campos del formulario de forma que cuando el foco pase de un campo a otro se llame a este escuchador. Para ello busca CAMBIO 4 en el código y asigna el escuchador a todos los campos. Finalmente quita los comentarios de esa parte del código para probarlo.
Indica la línea que hay que utilizar para asignar a cada campo el escuchador implementado en la propia actividad (Tu respuesta ha de comenzar por "set" y terminar por ";")
setOnFocusChangeListener(this); - CorrectosetOnFocusChangeListener(this);EXPLICACIÓN
La respuesta correcta es setOnFocusChangeListener con el
argumento this ya que en este caso es la actividad la que implementa
la respuesta al evento. El código debe quedar como sigue:
setOnFocusChangeListener(this);
OCULTAR RESPUESTA Usted ha realizado 1 de 2 intentos de envío
EJECUTANDO LA APP INTERACCIÓN (1/1 punto)Una vez terminados los pasos precedentes ejecuta la aplicación, realiza los siguientes pasos y contesta a las preguntas.
Escribe el nombre "Juan" en el campo nombre y cambia al campo apellido. Normalmente en el teclado aparecerá un botón siguiente para hacer esto. Si no es el caso, pulsa con el dedo en el campo apellidos.
En el momento que se cambia de campo ¿Qué aparece en la parte de abajo de la interfaz (posiblemente cubriendo parcialmente el teclado)? Si no estás seguro, puedes repetirlo varias veces antes de contestar.
Nada Un letrero flotante que dice "Validando todo..." Un letrero flotante que dice "Validando nombre..." Un letrero flotante que dice "Validando nombre..." - Correcto
EXPLICACIÓN
El evento de OnFocusChange se desencadena al cambiar de campo y
se llama a validaNombre() desde dentro del método de gestión del
evento, esto es desde onFocusChange. En validaNombre() es donde
se debe validar el nombre (número de caracteres máximos, permitir
solo caracteres alfabéticos o lo que corresponda). Ahora en
validaNombre() se crea un "Toast" que muestra brevemente un cartel
flotante que en este caso dice "Validando nombre...".OCULTAR RESPUESTA Usted ha realizado 1 de 1 intentos de envío
EJECUTANDO LA APP INTERACCIÓN II (2/2 puntos)A continuación escribe el apellido "Pérez" en el segundo campo, después "juan.perez" en el campo correo electrónico y finalmente cambia al campo contraseña. Indíca cuál es el aspecto de la interfaz tras estas operaciones:
Interfaz A
Interfaz B
Interfaz C
¿Cuál es la interfaz que se muestra?
A B B - Correcto CA continuación vuelve a marcar el campo correo electrónico para corregirlo (sin realizar ningún cambio). ¿Cuál es la interfaz que se muestra en este caso?
A A - Correcto B CEXPLICACIÓN
En el método validaCorreo() se valida el correo electrónico
usandoPatterns.EMAIL_ADDRESS.matcher(etCorreo.getText()).matches().
Si no es un correo válido se marca el campo como error desde código
con el método setError de EditText. Este método hace que aparezca el
icono de error sobre el campo (solución interfaz B a la primera
pregunta). El letrero solo aparecerá cuando el campo vuelva a tener
el foco (solución interfaz A a la segunda pregunta)OCULTAR RESPUESTA Usted ha realizado 1 de 1 intentos de envío
EJECUTANDO LA APP INTERACCIÓN III (1/1 punto)A continuación damos al botón Borrar y después al botón Validar para validar todos los campos.
¿Cuántas carteles flotantes aparecen en la parte de abajo de la interfaz tras apretar Validar?
7 7 - Correcto 6 1 0EXPLICACIÓN
Aparecen 7 carteles, uno por cada uno de los campos y otro al inicio
que dice "Validando todo...".
El abuso de los mensajes usando Toast puede ser molesto para el
usuario por lo que se recomienda hacer un uso moderado de ellos.OCULTAR RESPUESTA Usted ha realizado 1 de 1 intentos de envío