0:54
>> Las cámaras.
¿Puedes venir?
[SOUND]
20,
toma 1.
Ejemplo, intento.
[INAUDIBLE]
>> Ok.
Bien, vamos a hacer un
ejemplo donde podamos estar aplicando un Intent implícito y un Intent explícito.
Lo que haré para demostrar todo esto, es que vamos a hacer una lista de contactos.
Una lista de contactos en la que yo pueda tener el nombre de una persona,
pueda tener su teléfono y además pueda tener un correo electrónico.
1:59
Básicamente lo que hará esta aplicación será que cuando seleccionemos a una
persona, pasará a otra actividad en donde yo tendré ahí los detalles de esa persona,
entre ellos su nombre, su teléfono, su correo electrónico.
Al presionar el teléfono, inmediatamente la actividad deberá ejecutar la
aplicación de llamadas para ejecutar la llamada.
Y también cuando yo presione el botón de email, pues,
en ese momento se ejecutará un chooser o una aplicación que te permitirá elegir
entre todas las aplicaciones de correos para enviar un correo a esa persona.
3:06
Ok.
El proyecto you ha sido creado.
[SOUND] Aquí está, y perfecto.
Bueno, lo primero que tengo por aquí es mi layout.
Y la primera pantalla que voy a mostrar será una lista de contactos, ¿ok?
Entonces, voy a quitar este elemento TextView y
voy a sustituirlo por un elemento ListView, ¿ok?
Un ListView.
Este ListView va a ser en su width match_parent,
y en su height también match_parent.
Voy a colocar su id.
3:59
En su id le voy a poner lstContactos, ¿ok?
Y estos padding que están por acá me están como estorbando un poco.
Los voy a quitar.
Si observas, estos padding marcan el espacio que hay entre
la lista y la pantalla del teléfono.
Entonces, lo que voy a hacer es que los voy quitar.
Así de simple, y listo.
Cuidado de no llevarte la propiedad tools o cualquiera de las otras propiedades
que son importantes.
you tengo mi lista, y perfecto.
Básicamente la lista, vamos a tener aquí una lista de nombres de personas.
Y que cuando yo le de clic a esa persona,
debemos pasar a otra actividad donde ahí se estará mostrando,
pues, el detalle de ese contacto.
Entonces, vamos a hacer nuestro segundo Activity
que va a contener el detalle de ese contacto.
Voy a darle clic derecho, puedes hacerlo a cualquier nivel del proyecto,
y voy a colocar clic derecho, new en la opción de Activity.
Y vamos a seleccionar un activity empty, Empty Activity o una actividad vacía.
Aquí nos está solicitando el nombre de la segunda actividad.
Vamos a colocar
5:55
Lo primero que quiero mostrar en grande, por aquí, pues,
ese es el nombre de la persona.
Por lo tanto necesitaré un elemento llamado TextView.
6:21
En el siguiente reglón,
voy a colocar igualmente ahora un ícono de email, y enseguida el email, ¿ok?
Entonces, por ahí necesitaré algunos recursos.
Voy a colocar mi primer TextView.
Mi primer TextView será
wrap_content y wrap_content.
No olvides su id.
Y voy a colocarle TextView nombre, ¿ok?
Eso será el nombre de la persona.
Vamos a modificar este RelativeLayout.
Vamos a cambiarlo por un LinearLayout, un LinearLayout que sea en posición vertical.
El hecho de que yo tenga un LinearLayout en posición vertical, me va a permitir
que todos mis elementos, automáticamente, y en la forma consecutiva
en que están ordenados, van a estar uno debajo de otro, ¿ok?
Entonces, voy a colocar aquí en vez de RelativeLayout,
LinearLayout, y debo colocar también la orientación de este LinearLayout.
Entonces, voy a poner android:orientation, y vamos a decir vertical.
7:39
Bien. you está aquí mi TextView.
Hasta este momento no veo nada porque el TextView no tiene ningún texto.
Entonces, voy a ir a mi archivo strings.
Para declarar los textos que me funcionarán en este
caso solamente como muestra, para poder estar viendo
un poco cómo se estará comportando mi aplicación.
Bien, entonces voy a colocar el nombre, vamos a poner así nombre.
Puedo poner Anahí Salgado, recuerda que solamente
estos son textos de muestra, nombre, teléfono,
teléfono podemos contar 55557777.
Vamos a colocar el email, el email y por ejemplo puedo colocar anahi@gmail.com.
Perfecto.
9:02
abajo colocaré un TextView y voy a colocar wrap content, wrap content, su id.
Recuerda que este será el teléfono, vamos a poner aquí TextView teléfono.
Bien, colocamos nuestro android text @string.
A mi me gusta mucho escribir en esta vista de código porque puedo tener
mayor control del código.
Pero si en algún momento se te facilita más utilizar la
vista de diseño, con toda libertad puedes hacerlo.
Básicamente es lo que más se te adapte,
lo que más te adaptes y lo que más puedas sobre todo desarrollar más rápido.
9:55
Bien, el email vamos a ponerlo del texto @string/email, aquí está.
Perfecto, ahora esto, pues no tiene un formato muy agradable.
Además dijimos que ibamos a colocar aquí una imagen que tendrá nuestro icono
y a un lado también el icono para correo electrónico y para teléfono.
Entonces primeramente voy a concentrarme en el nombre.
El nombre lo voy a hacer un poco más grande y además voy a colocar en negritas.
Es decir, vamos a darle más formato, android, vamos a colocarlo
primero en negritas con la propiedad TextStyle, vamos a colocar bold.
Vamos a poner un texto más grande con la propiedad TextSize,
a lo mejor si colocamos unos 20dps, a lo mejor un poco más.
Un poco menos.
Yo creo que algo así está bien, es más legible.
Bien, esta medida la voy a quitar de aquí y voy a declararla en mi archivo dimen.
Recuerda que en nuestro archivo dimen deben estar todas las unidades que
11:13
manejemos, vamos a colocar aquí nombre de contacto, este será la medida para
el nombre de contacto, 33 dp, es lo que estoy manejando.
Recuerden que son densidades dots per inch,
estamos manejando densidades aquí, aquí no manejamos nada de pixeles.
Con @dimen estaré definiendo, o estaré
11:55
Primeramente, pues para que mi imagen pueda salir de este lado y a un
lado el teléfono, necesitaré colocar un layout anidado en este layout,
o sea un layout dentro, un layout como hijo de este linear layout.
12:19
El layout que me ayudará mejor será otro linear layout en el que voy a colocar la
posición horizontal, para que la imagen quede de un lado y el texto quede de otro.
Voy a colocar aquí linear layout que en su width esté como match parent, y en su
12:51
lo vamos a meter acá, listo, ahí está.
No olvidemos la orientación del linear layout, es una propiedad muy importante,
y le vamos a decir que sea horizontal.
13:05
you, bien.
Ahora, vamos a colocar aquí un elemento ImageView, ok.
Un ImageView que será, vamos a colocarlo por el momento wrap content,
wrap content, vamos a colocar su id, su id debe ser
ImageView, ImageView debe ser teléfono, ¿ok?
Recuerde que es el icono de nuestro teléfono.
Yo you tengo listos 2 iconos, yo you los he descargado, puedes descargarlo de un
sitio en internet que estos iconos son completamente gratuitos.
13:43
Este sitio de internet se llama icons8.com/android/icons
icons8.com/android/icons.
Y me gustó mucho porque trae muchos iconos,
sobre todo siguiendo muchas métricas de material design.
14:00
Podemos a lo mejor seleccionar un icono de teléfono que es lo que necesitamos
para nuestro ejemplo.
Lo buscas, probablemente te pida en algún momento que te registres.
Y bueno en esta parte aparecen los iconos, simplemente puedes seleccionar uno,
por ejemplo este o el que más te guste y lo puedes descargar.
Además si te gusta ese color, puedes dejarlo así o sino lo puedes cambiar al
color que hayas indicado para tu aplicación.
Bien, yo you tengo descargados mis dos iconos que voy a ocupar.
Lo que voy a hacer es traerlos a mi proyecto.
Los voy a traer utilizando el plugin que instalamos en el curso
anterior para generar todas las densidades.
Pues este recurso que hay en internet nos descarga los iconos
solamente en una resolución como de 48 o 50 pixeles.
Dependiendo de cómo esté disponible el icono, entonces no lo tenemos disponible
pues para todas las densidades, que es lo que nosotros queremos.
15:10
Tengo aquí mi proyecto, yo tengo aquí mis imágenes,
el icono que estoy buscando es este, phone48, es en 48 pixeles.
Me aparece mi ventana de donde me pregunta que esta
resolución este cambia de pixelaje a qué densidad de
resolución pertenece, puedo colocar que esa está bien.
Puedo seleccionar ahora también para mi icono de mensaje o de email,
aquí está, también lo puedo traer, le doy ok y ok.
Entonces automáticamente esto lo que hace
es generarme mis iconos en todas las densidades que yo necesite.
Pueden colocarle el nombre que sea de mejor legibilidad
si así lo quieres o puedes estar manejando eso.
Vamos a colocar en nuestro ImageView,
nuestro ImageView vamos a poner nuestro ícono.
Vamos a poner android:src y
con @drawable coloco el icono del teléfono.
Bien you se ve aquí, se alcanza a ver mi teléfono.
16:50
Ok, sí, se ve alineado, perfecto.
Podemos darle más estilo, yo puedo aquí definir a lo mejor mi width,
un poco más grande, quiero que se vea más.
17:03
A lo mejor unos 50 dps de width.
Y esto, ok, vamos a dejarlo tal cual wrap content,
así para que se siga respetando todas las densidades que you estamos manejando.
Lo que si haremos más grande será el texto.
17:24
Ok, el texto, porque esto tiene que estar en una medida que yo pueda,
pues que mi dedo quepa ahí y que pueda estar cliqueando,
que pueda estar dando tap.
Ok, yo creo que esta, esta medida está bien.
Ahora si observas aquí coloqué la medida sp.
Generalmente en android podemos utilizar la medida
sp que es una escala independiente de los pixeles, eso significa.
17:56
O podemos utilizar también dps si es que así lo quieres,
cómo observas son equivalentes, cualquiera de estas es equivalente.
Y cualquiera de estas que pongas también debe estar
completamente declarada en el archivo dimen.
Archivo dimen y colocaremos teléfono teléfono del contacto, así.
Bien, como observas solamente hasta ahorita, estoy pues simplemente
modelando o simplemente diseñando mi interfaz como quiero que se vea.
18:29
Ok, podría colocar un poco más de espacio en este linear layout, ¿ok?
Y puedo hacer android mmm, un margin top,
y a lo que mejor que sean unos 30,
tal vez son muchos, 20, así será mejor, 20 dps.
De la misma forma, nos llevamos esto, se pone
aquí top,
sí y podemos utilizar con top, perfecto.
>> ¿Podemos parar ahí?
>> Claro. >> No acabar regla de eso.
>> Sí.
>> No y a partir [INAUDIBLE]
21:26
>> Ok ahora voy a continuar
con este elemento y básicamente es lo mismo que acabamos de colocar arriba.
Debemos definir nuestro linear layout, vamos a colocar que sea un match parent y
un match parent lo pusimos como
21:55
Y vamos a colocar este elemento dentro del linear layout.
Es importante también definir la orientación, voy a copiar estas dos líneas
que están por acá, ok,
y aquí está marcando porque dejé esto aquí.
you, hay que cortarlo.
Eso es lo que había que hacer, cortarlo.
Bien, vamos a colocar nuestra imagen, nuestra
imagen pero esta imagen va a ser un email.
¿Ok? Vamos a colocar aquí nuestro
23:23
Ok, vamos a llevarnos esta dimensión por acá,
dimen, vamos a poner left,
10 dp, y nuestro recurso dimen.
23:47
Bien, se lo asignamos al teléfono.
you está, perfecto.
Esto se ve mucho mejor.
Ok, you tenemos nuestra pantalla de muestra.
Tenemos nuestra pantalla inicial que será nuestra lista de contactos.
Aquí solamente mostraremos el nombre de cada persona y posteriormente, pues,
al dar clic en una persona pasará a esta pantalla donde tendremos el nombre de la
persona, su teléfono y su correo.
Al darle clic al teléfono deberemos ejecutar una llamada, y al darle clic al
correo electrónico debemos tratar de enviar un email.
Entonces, vamos a nuestro Main Activity a trabajar nuestra lista de contactos.
Por el momento,
la lista de contactos la vamos a cargar definiendo un arreglo o un Array List.
24:41
Un Array List de objetos, un Array List de objetos contacto.
Entonces para ello es necesario que yo tenga lista una clase,
una clase que será mi modelo como será un Pojo.
Y este Pojo se llamará contacto.
25:11
el String nombre, que tenga el atributo private.
Vamos a dejar el teléfono en String también,
por si puede tener algunos guiones.
Teléfono, nombre, y el correo electrónico también.
String email.
¿Ok?
Podemos crear nuestros Getters y Setters con clic derecho,
25:39
Generar, aquí dice Getters and Setters, que eso es un,
esto es parte de lo vimos en el curso, en nuestro primer curso de Java.
Vamos a seleccionar todos los campos y you tenemos nombre.
Nombre, teléfono, email.
Además, vamos a crear un constructor que nos ayude a poder instanciar
26:45
Entonces vamos a declararlo afuera.
Un Array List será una colección de contacto.
Le vamos a poner aquí contactos, punto y coma, ¿ok?
Será nuestra colección de contactos.
Voy a colocar aquí contactos, voy
27:43
Recuerda que bueno, pues en nombre vamos a colocar Anahí Salgado,
el que tenemos, y el teléfono, que puede ser 77779999.
Como no hay tiempo voy a estar añadiendo,
vamos a poner aquí 5 contactos, 5 puedo colocar.
28:49
Ok, vamos a colocar también en nuestro
constructor que sea obligatorio
el correo electrónico, email.
Para hacerlo es ponerles email a todos y no estar
29:16
Entonces, vamos a poner aquí anahi@gmail.com.
Entonces, ¿qué hice?
Simplemente en nuestro constructor definí nuestro constructor de nuestro Pojo,
definí un parámetro más, email, y se lo estoy asignando al atributo, ¿ok?
Entonces pongo por aquí pedro@gmail.com.
Vamos a hacer el otro,
mireya@gmail.com, y por último,
juan@gmail.com.
Bien. Tenemos you en nuestra lista,
solamente hemos creado la lista.
Esta lista en videos más adelante puedes obtenerla de un web
service o puedes obtenerla de una base de datos, o de Internet,
o de donde tú quieras, pero para este momento la estaremos colocando así.
Entonces, lo que haremos será empezar
a generar nuestro List View, ¿ok?
Recuerda que dejamos nuestro List View en nuestro
layout, nuestra lista de contactos, ¿ok?
Esperen un poquitito.
Voy a cerrar esto, este, este,
y voy a mi Main Activity y puedo
ejecutar mi casting, mi casteo,
van a hacer FindViewById R.id.lstContactos.
31:07
Bien, entonces dijimos en un video anterior
que para llenar una lista de contactos es necesario utilizar un adaptador.
Entonces colocaremos setAdapter,
y lo que recibe este adapter es un arreglo, ¿ok?
Vamos a ponerle new Array Adapter,
puede ser una lista o un arreglo, un Array Adapter.
Y lo que estaremos mostrando,
vamos a decir que sea un Array Adapter de String.
Y entonces aquí adentro colocaremos
el contexto, posteriormente vendrá
nuestro layout android.R.layout.
El layout que tenemos como muestra que Android nos provee y no tenemos que
crear uno sino you tenemos uno listo, y pasamos la lista, ¿ok?
Solamente pasaremos contactos, nuestra lista de contactos.
32:33
tiene pues es un arreglo, es una lista de objetos.
Entonces lo que tendremos que hacer para poder mostrar solamente los nombres
será a partir de esta lista de objetos generar solamente los nombres.
Para ello podemos utilizar un foreach, un foreach,
34:53
¿O you quedó?
>> you.
>> Entonces vamos
a generar un foreach,
un foreach de
contacto que esté iterando a contactos.
¿Ok?
Así, contactos.
Y bueno, mientras se esté llenando esto, mientras
esté recorriendo esto lo que yo quiero estar llenando será un arreglo de nombres.
Voy a estar colocando, sí,
nombres de contacto.
36:44
Entonces you podemos usar aquí nuestros nombres de contacto.
Entonces ahora sí estamos pasando un arreglo de nuestros contactos,
solamente los nombres.
Ok, lo que hicimos fue simplemente iterar nuestra lista de contactos,
tratar el objeto con un foreach de una forma más simple
y pasarlo a un nuevo arreglo que solamente contenga los nombres de los contactos.
Bien, ahorita pues si nosotros corremos esto you podremos ver nuestra lista de
contactos, vamos a correrlo por aquí.
Tenemos conectado nuestro teléfono.
37:35
Y listo aquí están you nuestra
lista de contactos,
Anahí Salgado, Pedro Sánchez,
Mireya Martínez y Juan López.
Bien, ahora vamos a hacer que cada vez que yo de clic en cada elemento pues pase a mi
ventana de detalle.
Bien, para pasar de una ventana a otra, lo primero que tenemos que saber
you lo vimos en nuestro video anterior, es que voy a utilizar la clase intent.
38:15
Entonces vamos a crear un intent explícito.
Un intent explícito que sera un intent
que me permita unir o unir elementos que estén dentro de la misma aplicación,
es decir, unir actividades.
38:46
cuando alguien de clic, cuando alguien de clic, o alguien de touch,
o alguien tap a la lista, en ese momento se va a disparar ese método.
Entonces el método que buscamos es setOnIntentClickListener,
setOnIntentClickListener.
Le voy a colocar new, y me pide la interfaz onItemClickListener,
se la voy a dar y automáticamente todo el código que necesito me lo sobreescribe.
Mira aquí está mi método, mi método onItemClick.
El método onItemClick va a estar cachando algunos
parámetros interesantes que en primer lugar estaré cachando en la posición,
39:31
la posición del elemento en el cual estoy obteniendo,
por ejemplo, en este caso Anahí Salgado.
Me cachara la posición 0.
La lista va enumerada en 0, 1, 2 y 3.
Entonces si yo doy aquí touch me cachara 0,
si doy aquí 1, 2 y 3.
Y entonces esto para mí es lo que me interesa cachar,
qué elemento estoy Clickeando en mi lista de contactos.
Si a partir de la posición catch up, que es el valor cero.
Entonces quiere decir que estoy,
en mi lista de contactos estoy catcheando el objeto cero.
40:14
Si estoy en el uno, estoy catcheando el objeto uno.
O sea Pedro Sanchez.
En el dos, el objeto dos, o sea Mireya.
Y en el tres, Juan López.
Recuerda que todo se va dando a partir de índices,
y los índices van enumerados siempre del cero hasta n menos uno.
40:37
declaramos nuestro objeto intent, igual a new, lo distanciamos.
Y recordando, siempre es en dónde estoy ubicada y hacia dónde quiero ir.
Entonces estoy ubicada en main activity punto, aquí le voy a poner punto this.
40:54
Y quiero ir a mi clase, detalle contacto punto class.
Bien, y la siguiente instrucción simplemente sería iniciar el intent.
Si hago esto, cualquier item que yo abra automáticamente si corremos esto,
pues simplemente estaremos cambiando de pantalla.
Simplemente en la pantalla que estoy, main activity,
me estará llevando a mi pantalla detalle contacto.
Así de simple es declarar un intent.
Selecciono éste y me lleva allá, pero regreso y me lleva allá.
Pero en realidad pues no estoy catchando realmente el elemento.
Lo que yo necesitaría aquí sería enviar un intent con parámetros.
42:10
Utilizando nuestro parámetro put extra,
lo primero que me pide aquí es la clave
del parámetro que estoy enviando y lo
siguiente que me solicitará será el valor.
Entonces aquí vamos a colocarle objeto, puedo ponerle así.
42:39
O le puedo poner contacto, y aquí le vamos
a colocar nuestros contactos.get,
y me pide el índice para saber cuál es el
elemento que acabo de clickear.
43:52
Bien, entonces como observas, pues aquí una de las condiciones que no
se pueden utilizar para enviar un parámetro es enviar un objeto completo.
Entonces yo necesitaré enviar varios parámetros con el objeto obtenido.
44:10
Entonces para eso colocaré por ejemplo aquí el nombre del contacto,
solicitaré el nombre get el objeto, get punto nombre.
Esto equivale simplemente a obtener todo el objeto
que estoy teniendo aquí y al objeto que estoy obteniendo le solicito el nombre.
Ahora, puedo enviar un segundo parámetro, intent punto,
put extra, ahora el teléfono.
44:44
Y de la misma forma a partir de mi lista,
a partir de la posición puedo estar solicitando get teléfono, punto y coma.
Y un tercer parámetro, punto put extra, teléfono,
puedo aquí colocar el email, contactos,
punto get, punto position, punto, get email.
45:13
you, y aquí también una opción que me da intent punto putExtra,
es que puedo enviar un arreglo de cualquier elemento primitvo.
Un arreglo e incluso de un string que no es
un tipo primitivo pero puedo enviar arreglos de string.
Entonces otra forma también más óptima es colocar estos elementos en un
string y enviar todo el string de parámetros como un sólo parámetro.
Lo vamos a colocar así para que puedas ver cómo
podemos mandar varios parámetros en un cambio de pantalla.
46:07
Ahora, del otro lado, del detalle contacto, lo que yo tengo que hacer es,
una vez que estoy mandando los parámetros tengo que recibir los parámetros.
Y si recuerdas cómo recibir los parámetros, lo hago con un objeto Bundle.
46:23
Un objeto Bundle que se puede llamar parámetros,
y que este objeto le solicitaré el intent, si es que viene un intent,
get extras y recuerda que en Android los parámetros se llaman extras.
46:43
Y a partir de los parámetros solicitar el nombre.
Ok, getstring, solicitar el nombre a partir de la clave que colocamos aquí, ok.
Si yo coloqué Nombre con N mayúscula, debo recibirlo acá también.
Lo mejor para estos casos es que estos parámetros estén como una variable en mi
archivo string, o estén declarados como una variable global.
String, vamos a colocar el nombre,
que sería nuestro parámetro, vamos a ponerlo así, nombre.
47:24
Le vamos a poner por aquí tres veces
el nombre, el teléfono, para estar
identificando cada uno y p email, ok.
Aquí también lo colocaremos, email.
Entonces de este lado, aquí, en vez de colocar estos nombres.
48:41
Esto equivaldría a que yo tuviera simplemente el texto nombre.
El texto nombre que lo coloqué en mi archivo string,
este texto, a eso equivaldría.
Ahora, vamos por el teléfono,
teléfono y aquí vamos a poner p teléfono.
Y el email, vamos a colocar el email.
49:22
Ok, bien you tengo los datos.
Aquí you estoy cachando los datos que me está mandando mi main activity.
Por aquí me está diciendo mi main activity que tengo algún error.
Ok, necesito cerrar mis paréntesis.
49:54
Vamos a mostrarlos en nuestros views que tenemos por acá.
Tenemos nuestro text view,
tenemos nuestro text view teléfono, nuestro text view nombre.
Todos y cada uno tienen un identificador que
me va ayudar a poder trabajarlos con código Java.
Entonces voy a declarar mi text view,
vamos a poner el nombre (TextView)
findViewById(R.id.tvNombre).
Lo mismo será para el teléfono.
Ahí está.
Lo mismo será para el email, aquí está.
51:01
Y con el método setText puedo colocarle el nombre
que estoy catchando aquí, que me trae el parámetro.
El método para el teléfono,
también le coloco setText, teléfono.
51:28
Email.
Así.
Y a cada view you le estoy colocando los que estoy trayendo en mis
parámetros anteriores.
Bien, es una buena práctica tener el código organizado de esta forma.
Es mucho más legible tenerlo así.
Lo mismo para los views.
Ahí. Es mucho más legible.
Ahora esto.
Perfecto. Vamos a ver cómo funciona esto.
Vamos a correrlo.
51:58
Podemos correrlo.
Y ahora que yo esté dando click en algún elemento de la lista.
La idea es que pues you se están mostrando estos elementos también.
Pedro, aquí está Pedro, su número telefónico y su correo.
Aquí está Juan López, ahí está su número telefónico y también su correo,
y puedo seleccionar Anahí y ahí está también.
Únicamente nos falta hacer que cuando yo presione el teléfono,
o presione el correo electrónico, pues estos tengan,
ejecute una llamada y levante una aplicación de correo electrónico.
Bien, eso lo haremos.
52:48
Ok.
[INAUDIBLE]
[SOUND]
Si you,
you va acabar.
[INAUDIBLE] No se ve el libro ¿verdad?
>> Ahorita no se veía, se veía la pantalla no más.
Cuando estás hablando no te vas a a ver.
>> Ok, si mientras no se vea.
[INAUDIBLE] No sé si tengo
la idea de qué sigue
después de qué cosa pero.
[INAUDIBLE]
55:08
Entonces, antes de hacer esto métodos, sólo los tengo aquí declarados.
Estos text views los voy a declarar globales,
para poder manipularlos dentro de cada método.
Entonces voy a declarar solamente estos text view como
variables globales, es decir, fuera de mi método on create.
Y basta con que yo simplemente coloque esto así.
En cualquier momento mis texts view son globales,
y además los vamos a dejar como privados.
55:46
También puedo manejar modificador de acceso a estos.
Para que estos elementos solamente
sean útiles para la clase.
En TextView, vamos a quitar esta declaración porque sino
querría decir que este objeto es local a este método, y no.
Yo no necesito que estos objetos sean globales y
accesibles para toda la clase para que yo pueda llamarlos
desde cualquier método, you sea de llamar o enviar.
En nuestro layout tenemos esto.
Tenemos el teléfono y tenemos el correo, la idea es que cuando yo le
de click aquí ejecute la llamada, cuando yo le de click acá ejecute el correo.
También debe funcionar si yo le doy click aquí o si yo le doy click acá.
Podemos catchar aquí en nuestro
layout desde aquí, desde el código xml,
una propiedad on click.
En este caso voy hacerlo para todo el inner layout
que está abrazando al image view y al número telefónico.
Entonces voy hacer que cuando alguien le de click a toda esta zona
que se ve marcada pues se ejecute mi método llamar.
57:33
Esto es pues, bueno podríamos haberlo hecho con un list view,
pero quería que viéramos más elementos,
más linear layout anidados, y veamos cómo manipular todos éstos.
58:08
Vamos hacer que al llamar, lo primero que yo necesito obtener para llamar,
para ejecutar la llamada es el número telefónico.
Eso es lo primero que necesito obtener.
Entonces utilizare mi TvNombre tvTelefono, y
58:25
vamos a ponerle .getText., .toString.
Con el .getText no es suficiente,
porque el .getText nos trae un objeto tipo chart sequence.
Al hacer yo un toString, en ese momento you obtengo algo útil.
Teléfono, entonces lo puedo traer aquí, teléfono.
59:06
Lo que estaré ejecutando,
el tipo de intent que estaría ejecutando será intent implícito,
porque será un intent que tome un recurso externo de mi aplicación.
Es decir, para que se pueda ejecutar la llamada,
yo tengo que abrir la aplicación de llamadas y enlazarla con mi aplicación.
Ok, entonces este es un intent implícito.
59:31
Para hacer un intent implícito haremos una instrucción muy sencilla startActivity,
y aquí dentro colocaremos nuestro intent implícito.
Podría declararlo como lo estuvimos haciendo anteriormente,
pero eso es una forma mucho más sencilla.
1:01:00
Ok, en este momento nos está alertando el ire,
que necesito tener permisos.
Necesito tener declarado el permiso de call phone, esto en el Android Manifest.
Ok, esto lo vamos a ver en
1:01:18
videos más adelante sobre cómo manejar la seguridad del Android.
Pero mientras tanto declaremos los permisos que nos está solicitando.
Vamos a abrir nuestro Android Manifest,
lo tenemos por aquí, y vamos a colocar uses permission
y vamos a colocar el permiso de call phone, así.