Android Studio Desde 0 - Capitulo 4 - Evento en Los Botones PDF
Android Studio Desde 0 - Capitulo 4 - Evento en Los Botones PDF
Android Studio Desde 0 - Capitulo 4 - Evento en Los Botones PDF
Name: Clase 4
Language: Java
Agregar un botón, y al darle clic que nos diga “Bienvenido, hoy es” + Fecha
“Ver Fecha”
Con lo aprendido del capítulo 2, no será tan complicado agregar un botón con las siguientes
características.
Esta imagen explica las propiedades que contienen los hijos de RelativeLayout.
En este caso, btnVerFecha es hijo de RelativeLayout ya que está dentro de él, asi que al ser hijo ya
tiene todas estas propiedades.
Como el documento pide que el btnVerFecha este en el centro, usaremos la propiedad
layout_centerInParent.
Si nos fijamos, al buscar esta propiedad en btnVerFecha, aparece con el símbolo de “-“, eso
significa que es falso, o sea deshabilitado.
Y esto es lo que sucederá, como vemos obtuvimos lo que deseamos, que nuestro botón este en el
medio, puedes jugar con las otras propiedades para poder ver resultados diferentes, recuerda que
también se puede combinar, es decir si quisiéramos este resultado:
Que nuestro botón este en la parte inferior, pero a la vez que este centrado, combinaríamos
layout_centerHorizontal con layout_alignParentBottom
Programando el Botón
Ahora que ya diseñamos nuestra interfaz, pasaremos a hacer la segunda parte del requerimiento,
el cual es que al dar clic aparezca un “Bienvenido, hoy es” + Fecha.
Lo primero es saber en donde se escribe la lógica de programación y la respuesta es que todo esto
se hace mediante código Java, al usar la plantilla de Empty Activity, nos viene con una clase Java
conectada a la interfaz que viene por defecto, esta se llama MainActivity.java.
La ruta es la siguiente:
App -> java -> (Nombre del paquete de su proyecto)
Dentro de import están las librerías que usa Android por defecto, si damos clic en import,
podremos ver las librerías que tenemos actualmente.
Creación: Una actividad se ha creado cuando su estructura se encuentra en memoria, pero esta no
es visible aun. Cuando el usuario presiona sobre el icono de la aplicación en su dispositivo, el
método onCreate() es ejecutado inmediatamente para cargar el layout de la actividad principal en
memoria.
Ejecución-Reanudación: Después de haber sido cargada la actividad se ejecutan en secuencia a el
método onStart() y onResume(). Aunque onStart() hace visible la actividad, es onResume() quien le
transfiere el foco para que interactúe con el usuario.
Pausa: Una actividad está en pausa cuando se encuentra en la pantalla parcialmente visible. Un
ejemplo sería cuando se abren diálogos que toman el foco superponiéndose a la actividad. El
método llamado para la transición hacia la pausa es onPause().
Detención: Una actividad está detenida cuando no es visible en la pantalla, pero aun se encuentra
en memoria y en cualquier momento puede ser reanudada. Cuando una aplicación es enviada a
segundo plano se ejecuta el método onStop(). Al reanudar la actividad, se pasa por el método
onRestart() hasta llegar a el estado de ejecución y luego al de reanudación.
Destrucción: Cuando la actividad ya no existe en memoria se encuentra en estado de destrucción.
Antes de pasar a destruir la aplicación se ejecuta el método onDestroy(). Es común que la mayoría
de actividades no implementen este método, a menos que deban destruir procesos (como
servicios) en segundo plano.
Fuente: http://www.hermosaprogramacion.com/2014/08/android-app-componentes/
Resumen:
Al final podemos entender que el método OnCreate() se ejecuta al dar clic en el icono launcher de
nuestra aplicación.
Después habrá un modulo con varios ejemplos sobre el ciclo de la vida en Android, por ahora lo
importante es saber cómo dar una acción al botón cada vez que le hagamos clic.
Por último, quedaría saber para qué sirve este método llamado setContentView, este método
existe gracias a AppCompactActivity, toda actividad viene por defecto con una vista (View) vacía,
si ejecutáramos la app sin el setContentView, aparecería una pantalla totalmente en blanco, pero
gracias a este método, podemos definirle una vista creada desde la carpeta layout de recursos, es
decir que, si creáramos otro diseño, solo tendríamos que cambiar la ruta por el nuevo diseño.
“R.layout.activity” -> Es la ruta donde se encuentra nuestro diseño.
Es por eso que la línea de código R.layout.activity_main hace referencia a nuestro diseño XML.
Dentro de cada clase, en las primeras líneas de código declararemos las variables que utilizaremos,
debajo de ellas pondremos los métodos, esto es para que haya un orden en nuestro código.
Asi que pondremos comentarios, para saber que significa cada parte de nuestro código.
Ahora sí, para conectar el botón que tenemos en el diseño XML con la clase Java estos son los
pasos.
Como vemos mientras vayamos escribiendo el Android Studio nos ira ayudando para poder digitar
el código mas rápido, aparte de eso, Button es una librería de Android, si evitamos la ayuda de
Android Studio, sucederá esto.
El tipo de dato no existirá ya que no se importa la librería, en el caso en que sucediera esto,
Android Studio nos vuelve a ayudar para importar la librería.
Cuando salga ese diálogo, presionamos Alt + Enter, y automáticamente se nos importara la
librería.
Se recomienda que todas las variables estén en private, mas que nada para que todo este
encapsulado y protegido dentro de la clase de MainActivity.
Al ejecutar este método, lo que estamos haciendo es agregar como hijo del activity al diseño
activity_main.xml.
Después de ejecutar este método, mediante el método findViewById() podremos obtener todos
los hijos de activity_main.xml
En conclusión:
Para manipular las propiedades del Botón en código Java conectaremos la variable btnVerFecha
con el botón del diseño, y como dijimos esto se hace después de inflar la vista en la actividad.
El parámetro que devuelve findViewById() es el mismo tipo de dato del diseño, si se dan cuenta
btnVerFecha es un Button, el mismo tipo de dato que declaramos en Java.
Podemos ver que este método nos pide algo, pero no sabemos que es.
Si ponemos el cursor encima
Y presionamos control + p
Podemos ver que nos pide un OnClickListener, este es una interface de la cual implementa un
método onClick, dentro de ese método es donde pondremos la lógica que deseamos que realice al
momento de hacer clic en el botón.
Ahora si dentro del método onClick es donde escribiremos sobre lo que tiene que hacer el botón
cada vez que le hagamos un clic.
Un Contexto (Context)
Entonces, una Activity proviene de la clase Context, y AppCompactActivity hereda los atributos de
Activity, entonces si el método makeToast pide un Context, por lógica mandaremos a
MainActivity.this.
El segundo parámetro es el texto que queremos que imprima, para este ejemplo imprimiremos un
“Hola Mundo”.
Y por último nos pide la duración del mensaje, para esto solo existe dos parámetros.
Al presionar el botón, el mensaje será el siguiente, podemos mejorar esto agregando un formato.
Esto ya no forma parte del curso de Android, pero aquí tienen el código por si lo necesitan.
Nuevo Objetivo:
Agregar un EditText, obtener el contenido de la caja de texto y pasarle a un TextView al presionar
un Button.
Paso 1: Crear un nuevo diseño
Para eso nos dirigimos a App -> res -> layout
Click derecho en layout, después clic en New -> Layout Resource file
Nos aparecerá a la siguiente ventana, en File name pondremos el nombre de nuestro nuevo
diseño, en este caso le pondremos
activity_pantalla_2
Advertencia
Recuerda que el nombre de los Layouts no puede ir en mayúsculas, ni llevar puntos y guiones, solo
guiones bajos, letras minúsculas y números.
En Root element podremos cambiar el diseño que bien por defecto de ConstraintLayout a
RelativeLayout.
Asi es como quedaría al final, Damos clic en OK para finalizar la creación de nuestro diseño.
EditText:
id: edtTexto
text:
hint: Escribe algo…
textColorText: #FFFFFF
Button:
id: btnPasarTexto
text: Pasar Texto
TextView:
id: tvResultado
text: Resultado:
textColor: #FFFFFF
RelativeLayout:
Todo centrado
Diseño final:
Al crear nuestra clase, nos aparecerá así, para darle la forma de una Activity, primero debemos
extender de AppCompatActivity
Igualmente, si nos saliera error, aplicaremos alt + enter para importar la librería
Después de darle la forma de una Actividad, tenemos que implementar el método onCreate
Dentro de la clase presionaremos control (Ctrl) + O
Nos aparecerá la siguiente pantalla, buscaremos el método onCreate y daremos clic en OK para
implementarlo.
Podremos usar el filtro que viene en esta ventana, simplemente dentro de la ventana escribiremos
onCreate, y automáticamente el programa nos ayudará a buscarlo, ya que hay muchos métodos y
aparte que esto agiliza el proceso de programación, por último, damos en ok y se nos deberá
implementar en nuestra clase.
Por último, le diremos que la vista que tendrá que cargar al iniciar esta actividad será
activity_pantalla_2.
Ahora si pasaremos a crear las variables, en este caso tendremos un EditTet, un Button y un
TextView.
Ahora si viene la parte mas difícil, lo que nos pide el objetivo, para eso debemos ordenar todo el
paso en un diagrama de flujo, o simplemente escribir cada paso en orden.
1.Ya sabemos como dar evento a un botón, así que simplemente lo impleméntanos
Para obtener el contenido del contenido del EditText en un String, se usara el siguiente método:
.getText().toString();
3.Para pasar el contenido del EditText que esta en la variable texto, usaremos el método.
setText(String) del objeto TextView
Ahora si ya creamos nuestra nueva pantalla, pero ahora como le decimos a Android que, al abrir,
ejecute esta nueva pantalla, para eso usaremos el manifest
La ruta es la siguiente:
Si vemos aquí es donde se declara que .MainActivity es la actividad que se ejecuta al iniciar la app.
Cambiaremos eso por nuestra nueva clase Java, la cual es: Pantalla2Activity
Crear un menú con dos botones, el cual, al hacer clic en el primer botón, me lleve a la primera
pantalla (main_activity) y al hacer clic en el segundo botón me lleve a la segunda pantalla que
acabamos de crear.
Paso 1:
Crear la nueva pantalla activity_menu con dos botones, Diseño libre, con sus respectivos
identificadores.
Paso 2: Crear la clase Java con su método onCreate y setearle el diseño activity_menu.xml
Intent es una variable muy grande por explorar, en este caso no entraremos mucho a detalle, solo
lo usaremos para pasar a otra actividad, y por lo cual nos piden dos parámetros:
Así que primero crearemos la variable Intent dentro del método onClick del btnPantalla1
Ahora sí, dentro de los paréntesis pondremos los siguientes parámetros, desde donde se esta
llamando, llamaremos al Contexto de nuestra clase la cual es MenuActivity.this y después
tendremos que poner a que actividad queremos ir apuntándola como una clase (class) en este
caso el primer botón nos mandara a la primera pantalla que es el MainActivity.class
Por último, ejecutamos el método startActivity y mandamos como parámetro la variable intent
Si nos fijamos bien, activity es una etiqueta en la cual abre y cierra, nos dirigimos a donde cierra la
etiqueta, y hacemos un pequeño enter para escribir
Ahora si dentro de ese pequeño espacio, escribiremos <a y el programa nos deberá autocompletar
como <activity
Y al hacer clic en uno de los botones, nos mandara a una nueva pantalla, y con esto ya habremos
completado el capitulo 4, espero que hayas llegado hasta acá y no hayas tenido ningún problema,
sigue así y llegaras lejos.
Ejercicios
Ejercicio 4: Calculadora
Requerimiento: Realizar una calculadora que sume, reste, multiplique y divida, el diseño es libre, usen todo
lo aprendido hasta ahora para realizarlo
(NO TRATEN DE BUSCAR LA SOLUCION EN INTERNET, A PRIMERA VISTA UNO SE DARA CUENTA CUANDO EL
CODIGO ES DE INTERNET)