10
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

Instrucciones Actividad Semana 3

Embed Size (px)

DESCRIPTION

curso android

Citation preview

Page 1: Instrucciones Actividad Semana 3

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.

Page 2: Instrucciones Actividad Semana 3

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

Page 3: Instrucciones Actividad Semana 3

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

Page 4: Instrucciones Actividad Semana 3

 (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

Page 5: Instrucciones Actividad Semana 3

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);

Page 6: Instrucciones Actividad Semana 3

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

Page 7: Instrucciones Actividad Semana 3

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

Page 8: Instrucciones Actividad Semana 3

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

Page 9: Instrucciones Actividad Semana 3

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

Page 10: Instrucciones Actividad Semana 3