Sei sulla pagina 1di 10

En esta actividad vamos a prcticar con dos formas de crear respuestas

a eventos de la interfaz: mediante clases annimas y haciendo que la


actividad implemente el escuchador.
En este ejercicio vamos a utilizar como base el siguiente proyecto.
Vamos a dotar de interaccin 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 botn "validar" se comprobar la validez de
todos los campos y cuando se apriete el botn "borrar" se eliminar el
contenido de todos los campos. Esto se llevar a cabo utilizando el
mtodo onClick().
Tras completar esta actividad sers capaz de:
1.

Utilizar clases annimas escuchadoras para responder a


eventos en la interfaz.

2.

Implementar los escuchadores a travs de la clase Activity.

3.

Enumerar algunos de los eventos ms 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 annimo y asignarlo al botn bBorrar. Para
ello busca el texto "CAMBIO 1" en el cdigo de MainActivity.java. A
continuacin 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 botn bBorrar. Finalmente quita los
comentarios de esa parte del cdigo para que funcione.

Indica el nombre de la clase annima que sustituye a CAMBIO_1a (con o


sin parntesis)
OnClickListener - Correcto
OnClickListener

OnClickListener o OnClickListener()
Indica el nombre del mtodo que sustituye a CAMBIO_1b (sin
parntesis)
onClick - Correcto
onClick

OnClick
Indica el nombre del mtodo que sustituye a CAMBIO_1c (sin
parntesis)
setOnClickListener - Correcto
setOnClickListener

setOnClickListener
EXPLICACIN

La respuesta correcta es OnClickListener, onCLick y


setOnClickListener. El cdigo debe quedar como sigue:

OCULTAR RESPUESTA
Usted ha realizado 1 de 2 intentos de envo

CAMBIO 2

(2/2 puntos)
Se debe crear un escuchador annimo y asignarlo al botn bValidar en
una nica lnea. Para ello busca el texto "CAMBIO 2" en el cdigo de
MainActivity.java. A continuacin sustituye las cadenas CAMBIO_2a y
CAMBIO_2b por lo que corresponda para que se asigne adecuadamente
un escuchador de tipo onClick al botn bValidar. Finalmente quita los
comentarios de esa parte del cdigo para probarlo.
Indica el nombre de la interfaz implementada por la clase annima que
sustituye a CAMBIO_2a (con o sin parntesis)
OnClickListener - Correcto
OnClickListener

OnClickListener o OnClickListener()
Indica el nombre del mtodo que sustituye a CAMBIO_2b (sin
parntesis)
onClick - Correcto
onClick

OnClick
EXPLICACIN

La respuesta correcta es OnClickListener y onCLick. El cdigo debe


quedar como sigue:

OCULTAR RESPUESTA

Usted ha realizado 1 de 2 intentos de envo

CAMBIO 3
(2/2 puntos)
Ahora vamos a hacer que la actividad MainActivity implemente los
mtodos necesarios para dar respuesta a eventos de cambio de foco.
Estos eventos se gestionan con el mtodo 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 cdigo.
Indica el nombre de la interfaz implementada por la clase annima que
sustituye a CAMBIO_3a (sin parntesis)
OnFocusChangeListener - Correcto
OnFocusChangeListener

OnFocusChangeListener
Indica el nombre del mtodo que sustituye a CAMBIO_3b (sin
parntesis)
onFocusChange - Correcto
onFocusChange

onFocusChange
EXPLICACIN

La respuesta correcta es OnFocusChangeListener y onFocusChange().


El cdigo debe quedar como sigue para la primera parte:

y como sigue para la segunda:

OCULTAR RESPUESTA
Usted ha realizado 1 de 2 intentos de envo

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 cdigo y asigna el escuchador a todos los campos.
Finalmente quita los comentarios de esa parte del cdigo para probarlo.
Indica la lnea 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); - Correcto
setOnFocusChangeListener(this);

setOnFocusChangeListener(this);
EXPLICACIN

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 cdigo debe quedar como sigue:

OCULTAR RESPUESTA
Usted ha realizado 1 de 2 intentos de envo

EJECUTANDO LA APP INTERACCIN


(1/1 punto)
Una vez terminados los pasos precedentes ejecuta la aplicacin, 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 botn 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 ests 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
EXPLICACIN

El evento de OnFocusChange se desencadena al cambiar de campo y


se llama a validaNombre() desde dentro del mtodo de gestin del
evento, esto es desde onFocusChange. En validaNombre() es donde
se debe validar el nombre (nmero de caracteres mximos, permitir

solo caracteres alfabticos 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 envo

EJECUTANDO LA APP INTERACCIN II


(2/2 puntos)
A continuacin escribe el apellido "Prez" en el segundo campo, despus
"juan.perez" en el campo correo electrnico y finalmente cambia al
campo contrasea. Indca cul es el aspecto de la interfaz tras estas
operaciones:
Interfaz A

Interfaz B

Interfaz C

Cul es la interfaz que se muestra?


A

B B - Correcto

A continuacin vuelve a marcar el campo correo electrnico para


corregirlo (sin realizar ningn cambio). Cul es la interfaz que se
muestra en este caso?
A A - Correcto
EXPLICACIN

En el mtodo validaCorreo() se valida el correo electrnico


usandoPatterns.EMAIL_ADDRESS.matcher(etCorreo.getText()).matches().
Si no es un correo vlido se marca el campo como error desde cdigo
con el mtodo setError de EditText. Este mtodo hace que aparezca el
icono de error sobre el campo (solucin interfaz B a la primera
pregunta). El letrero solo aparecer cuando el campo vuelva a tener
el foco (solucin interfaz A a la segunda pregunta)
OCULTAR RESPUESTA
Usted ha realizado 1 de 1 intentos de envo

EJECUTANDO LA APP INTERACCIN III


(1/1 punto)
A continuacin damos al botn Borrar y despus al botn Validar para
validar todos los campos.
Cuntas carteles flotantes aparecen en la parte de abajo de la interfaz
tras apretar Validar?
7 7 - Correcto

EXPLICACIN

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 envo

Potrebbero piacerti anche