Você está na página 1de 205

Que es una ACTIVITY (actividades)

Una activity es cada pantalla o ventana de un proyecto en Android, la cual est


compuesta por dos partes, la cual es unida luego en algn punto de su
configuracin:
Parte XML = Su parte Grfica.

Graphical Layout

Y su activity_main.xml

Su parte Java = Su parte de cdigo o parte lgica.

Donde existe una parte (setContentView()), donde se le indica a la parte del


cdigo, cul es su parte grfica, y se coloca el nombre del archivo xml.

Estructura de una aplicacin en Android


Componentes de cada proyecto

Donde la parte lgica se va a encontrar en el directorio SRC, y luego viene el


nombre del paquete o varios paquetes y luego los .java.
Nota: Los archivos GEN, son generados por JAVA y no hay que tocar, porque la
aplicacin se puede volver inservible.

En el archivo r.java, se muestran los identificadores de toda la aplicacin,


como el cono, el margen, las dimensiones, los mens, cadenas de texto etc ,
sera como el directorio telefnico de nuestra aplicacin ordenados por sus ID
s.
Directorio ASSETS es donde se van a encontrar nuestros recursos, como
audios, videos, bases de datos, solamente que estos recursos que se generen,
no van a tener IDs.

Mientras que en la carpeta RES, se van a guardar recursos que si tendrn un ID

Y donde encontraremos varias carpetas, como por ejemplo las drawable, las
cuales se encargan de guardar los recursos grficos, tales como imgenes,
botones, conos, logos etc. Y esto dependiendo cada carpeta de las densidades
de cada imagen o recurso.
En las carpetas layouts se encontrarn las partes grficas de cada ventana o
activity, o sea, donde se encuentran los archivos XML.
Tambin se encuentran los directorios de los diferentes mens que se van a
utilizar.

As como directorios de Valores o VALUES, donde se encuentran los archivos:


Dimens.xml
Strings.xml
Styles.xml
Y otras values dependiendo del tamao de los dispositivos de nuestras
aplicaciones.

Donde tambin se encuentra nuestro AndroidManisfest.xml

En el directorio BIN, se van a encontrar los archivos Binarios generados por el


sistema, y tampoco van a ser manipulados.

En la carpeta LIBS, se encontrarn las libreras externas que vayamos a utilizar


en nuestras aplicaciones.

Android Manifest
Es el archivo de la columna vertebral de nuestra aplicacin, se encuentra
afuera de cualquier directorio, en la parte principal.
El cual nos dice mucho de nuestra aplicacin que estamos realizando, y
adems pre-configura todo para el correcto funcionamiento de una aplicacin.

Manifest visto en su parte del cdigo.

Donde se puede cambiar la versin de la aplicacin que estemos desarrollando

Se indica las versiones menores y mayores del SDK en que trabajar nuestra
aplicacin:

Tenemos la etiqueta de application, donde se puede indicar si se puede


realizar o no un back up de nuestra aplicacin en el celular, se puede indicar el
cono, el tema, ttulos y otras cosas

Tambin se pueden encontrar las etiquetas activity, para cada activity o


actividad que hayamos hecho en nuestra aplicacin.
Y es importante que cuando hagamos un activity en la aplicacin,
agreguemos esa actividad en nuestro manifest.

Luego encontraremos las etiquetas intent-filter, donde se ubican ms


caractersticas de nuestra aplicacin, tales como el action

Linear-Layout
Para la parte grfica de nuestra aplicacin, donde se encuentran los archivos
XML.
Por defecto se crea el RelativeLayout con Eclipse, el cual ser cambiado a
LinearLayout

Donde el mismo, tiene un solo atributo que es la orientacin

Y podremos observar los campos de texto o TEXTVIEW

Y si hay dos campos de texto, los ir acomodando de arriba hacia abajo porque
tiene orientacin vertical que le pusimos antes.

Si le cambiamos la orientacin, si cambiar el modo de su colocacin


grficamente

Relative-Layout
Es una capa como el linear o el frame layout, pero su caracterstica
principal, es que te va a permitir colocar un elemento en cualquier lugar, pero
con respecto a la posicin de otro elemento.

Como por ejemplo, si agregamos un botn, y luego agregamos otro botn, este
ltimo botn estar colocado con respecto a la posicin del primer botn.

Al inicio, coloca los dos elementos uno encima del otro, al arrastarlo se puede
ver por la flechas que depende de la posicin del otro elemento.

Igual si se mueve el primer elemento

Y el mismo va agregando el cdigo necesario en ese movimiento:

Match Parent
Donde se puede configurar la altura (height) y anchura (weight) de un
elemento.

Todos los elementos tienen esas medidas, como el TextView u otro, ya sea en
pixeles, que no deben de ser usados en Android, o proporciones, as como el
Match_parent, Fill_parent y el wrap_content.

El Match_parent y el Fill_parent son lo mismo, la diferencia es que el


fill_parent es viejo.
Eso si queremos que el ancho sea igual al padre.
Mientras que el wrap_content, depende del tamao del contenido.
El frame_Layout
Es otra capa, pero su caracterstica es con respecto a su acomodo, ya que este
coloca los controles hijos y lo acomoda en la esquina superior izquierda,
utilizado casi siempre para un solo elemento en la activity, el cual casi nunca
va a cambiar o es fijo.

Archivo String
Tiene la funcin de que todos los textos de nuestra aplicacin, se colocan
dentro de un archivo, para el fin de crear aplicaciones multi-idioma, y siempre
que agregue texto, se debe de configurar en dicho archivo.

TextView
El TextView es un elemento para meter texto que se quiera mostrar u ocultar al
usuario.
Tambin se puede encontrar en la parte grfica del lado izquierdo del Eclipse.

Se arrastra y se agrega, en la posicin que se configura el Layout

EditText o Text Fields


Nos sirve para la interaccin con el usuario, y se usa cuando necesitamos que
el usuario ingrese algn dato, como en un login o formulario.
Hay varios tipos de EditText, hasta nos puede indicar que tipo de teclado puede
utilizar el usuario.

Y su cdigo sera:

Y su parte grfica:

Button
El botn permite interactuar con el usuario y ejecutar una accin.

Y su cdigo en el archivo string:

Y su cdigo en su archivo activity:

Y se modifica el Layout, a LinearLayout con orientacin vertical:

Y en su parte grfica:

Los IDs
Para interactuar entre la parte grfica (xml) y la parte lgica (.java) y lograr
identificar la parte distinta de cada elemento, se utilizan los IDs o
identificadores en el archivo r.java.
Y estos IDs se le pueden poner a todos los elementos en la parte del cdigo en
minsculas.

Declarando elementos grficos


Se declaran para implementarlos en la parte de Java, y se declaran en el
principio de las clases (Public class) , para colocarlos siempre vamos a colocar
la clase primero, lo que es decir el tipo del elemento a colocar.

Ligar elementos grficos con la lgica


Esto se hace en el mtodo onCreate, donde arranca la activity, ejecuta lo que
hay dentro

Con este cdigo:

Interaccin
Nos vamos a la parte grfica (XML), y agregamos un TextView, su cdigo:

Su grfica:

Luego se declara y se liga en la parte del cdigo java, y creamos una cadena
llamada texto:

Luego le indica que implemente un mtodo en el Main_activity y se genera un


cdigo OnClick con un switch

Y luego liga el OnClickListener del botn

Y luego lo corremos

Los CheckBox
Los agregamos en la parte grfica o lgica del XML:

Agregamos el texto al archivo string:

Y los corroboramos en la parte del usuario:

Y los declaramos en la parte de Java:

Luego los ligamos:

Luego implementamos el OnClick por mtodos:

Luego hacemos el cdigo para el OnClick:

Luego le damos el permiso al botn para ser escuchado:

Y lo corremos:

El Spinner llenado por un Array


Es un drop list o lista men para el usuario, lo agregamos en la parte grfica o
lgica del XML:

Luego nos vamos a la parte de /RES/Values/ y agregamos un XML nuevo:

Y lo llamaremos arrays:

Y hacemos un string_array:

Luego declaramos el Spiner, el TextView, y utilizamos un ArrayAdapter:

Y se le da importar:

Y los implementa:

El ListView
Se puede llenar por muchos objetos, lo agregamos a la parte XML

Lo agregamos en la parte Java y lo declaramos, lo llenamos con un array de


cadena o charSequences

Luego lo ligamos y lo llenamos con un array adapter:

Y lo ejecutamos:

ImageView XML
Se usa para ver imgenes dentro de un activity.
Se agrega en el XML pero se utilizan dp en vez de px

Programando con Android Studio


Estructura del proyecto:
A la izquierda, se puede acomodar la estructura del proyecto dependiendo de
lo que quiera ver, ya sea por proyecto, paquetes, archivos del proyecto, por
Android (la ms comn), etc.

Donde encontraremos los distintos tipos de objetos necesitados en nuestro


proyecto, en el APP encontraremos el manifest o archivo de configuracin de
nuestro proyecto, y los archivos lgicos de JAVA.
Dentro del manifest existir la diferencia con respecto al Eclipse, de que ya no
existe el nmero de versin del proyecto, pero si se podr agregar
normalmente, as como las versiones mnimas y mximas en las que trabajar
nuestra aplicacin.

En la parte de JAVA encontraremos el MainActivity.java donde se declaran


los objetos y se ligan con los archivos XML.

En la carpeta RES encontraremos la carpeta DRAWABLE en la cual se


agregarn las diferentes imgenes que utilizaremos en nuestra aplicacin,
mientras que los iconos se encontrarn en las diferentes carpetas de MIPMAP,
donde se encontrarn alojadas dependiendo de su resolucin.

Y en la carpeta LAYOUT encontraremos nuestro archivo XML , el


activity_main

Otra diferencia que encontraremos, es la parte del GRADLE el cual es la parte


para la configuracin de la compilacin de la aplicacin, a diferencia del
manifest que es para solamente la configuracin de la aplicacin, y donde el
nico archivo que se podr editar sin daar el funcionamiento de la aplicacin,
es el build.gradle en la parte del module:app, y donde observaremos la
versin de la aplicacin.

La parte izquierda del Android Studio, se puede ocultar mediante el botn gris
de abajo.

Donde pasando el puntero del mouse, tambin nos despliega las diferentes
reas de trabajo

Donde en la parte de STRUCTURE, podremos ver cmo est organizada la


estructura XML de nuestra activity e ir viendo su posicin dentro del proyecto.

En la parte de abajo, tendremos la terminal de la computadora que estemos


usando:

As como el monitor del emulador que estemos utilizando:

Mensajes del GRADLE:

Y mensajes de otros tipos de eventos:

Creando una nueva Actividad


Para crear una nueva activity o actividad en nuestra aplicacin, solamente
nos posicionamos con click derecho sobre la carpeta RES y seguimos la
secuencia de lo que necesitamos crear.

Y luego se definen las caractersticas de esa nueva actividad:

Button y Toast
Parte de lgica:

Parte grfica:

Luego se declara en la parte de Java ese botn y luego se liga en el OnCreate

Luego se agrega el elemento TOAST, el cual permite realizar mensajes de


alerta o de ayuda para el usuario, por medio de una clase.
Se puede declarar el toast en la parte de las declaraciones (Public class) o se
puede hacer por medio de que se active un botn, en donde se puede usar un
implements ViewOnClickListener, y luego se le dice que implemente ese
mtodo que nos falta:

Luego en el cdigo que se le inserta abajo, agregamos el texto que queremos


que nos d al activar el botn, y dejamos el botn con el setOnClickListener:

Y se prueba:

Personalizando botones
Pueden ser botones del sistema o botones de imgenes.
Se personalizan variando sus textSize, textColor, typeFace etc.

Se declaran los elementos a utilizar, se ligan por su ID, se implementa el


OnClickListener, y se deja en SetOnClickListener cada botn usado.
Luego se programa el click de cada botn, y que genere un Toast diferente.

Interaccin con botones


Elementos grficos:

Programacin:

Otra manera de programar botones (onClickListener)


Parte Grfica:

Parte Lgica, en vez de implementar el OnClickListener y de usar el new en vez


del this:

Invocando Activities (Intent)


Se crea normalmente una pantalla principal que sera la que llame a la
siguiente pantalla o activity:

Con click derecho en la parte del proyecto se crea la nueva actividad:

Y se empieza a crear:

Donde se crean los archivos necesarios:

Recordar que siempre que uno crea una nueva actividad, debe de registrar esa
nueva actividad en el archivo manifest, y lo que se hace es copiar las
etiquetas del manifest principal y pegarlos en la etiqueta de la nueva
actividad, para luego modificarla:

Lo que se modifica es la parte del action, donde coloca uno en mayscula el


nombre del archivo .java de la nueva actividad, y luego se modifica la
categora, donde la parte LAUNCHER significara que sera la actividad
principal, y la categora DEFAULT, sera una actividad NO principal.

Seguidamente se programa el Intent hacia la nueva actividad:

Enviando datos entre actividades


Necesitaremos un EditText y un botn, donde se enviarn los datos ingresados
hasta otra activity que ser la que los reciba y los puede tratar y utilizar.
Estructura de la primera activity:

Programacin:

Estructura de la segunda activity:

Programacin:

RadioButton y RadioGroup
El Radio Button sirve para seleccionar todas las opciones de entre 3 o 4
opciones a lo ms.
Si existieran ms opciones se utilizan otras herramientas como el checkbox.
Diseo de tres Radio Button:

Diseo de un Radio Group, que permite seleccionar solamente una opcin de


varias:

Y luego su programacin, donde cambia el setOnClickListener por el


onCheckedChangeListener, y ese sera el mtodo a implementar:

Y as se muestra:

Otra manera de programar los Radio Buttons, son con las opciones isChecked()
es mejor

Y su parte lgica:

Spinner llenado por una lista


Creamos el elemento Spinner grficamente:

El Spinner es un elemento que se llena, luego lo declaramos, lo ligamos, y lo


programamos.
Donde utilizaremos la clase list, la cual nos permitir depositar los datos que
estarn incluidos en el Spinner. Y para poder llenar esta clase list,
utilizaremos un ArrayAdapter o adaptador que nos va a permitir colocar los
elementos, donde se le indicar su contexto, la manera en que lo va a mostrar,
y luego le pasamos la lista en donde van a estar los elementos, esta es la
manera de indicarle de donde se va a llenar.
Luego hay que indicarle que se llene y seguidamente indicarle que cuando se
seleccione un tem, haga alguna instruccin.

Toggle
El elemento ToggleButton, es un elemento que al drsele click se selecciona y
queda en ese estado hasta que nuevamente se le vuelva a dar click, para
quedar deseleccionado.

Y su programacin:

ScrollView
Es un elemento contenedor que nos permite recorrer las cosas que no
podemos ver dentro de una pantalla por tener mucha cantidad de cosas.
Lo que se hace es agregar el ScrollView dentro del Layout Parent de toda la
pantalla y dentro del mismo los elementos a necesitar, donde se les puede dar
otras caractersticas de Layout por ejemplo Linear y no Relative a ese
ScrollView.

Y su salida:

HorizontalScrollView
Es el mismo ScrollView, pero de manera horizontal.

Cuadro de Dilogo
Se crea un botn, y donde se le haga click al mismo, saldr un cuadro de
dilogo con dos opciones.

Y su programacin, donde se declara adems un contexto:

Cuadro de Dilogo con imagen (mtodo depreciado u


obsoleto)
Se toma del ejemplo anterior, con un botn que al oprimirse, saldr un cuadro
de dialog, pero esta vez con el Implemets OnClickListener activo.
La diferencia es en la parte de programacin, donde se agrega una clase
llamada Dialog.
Las imgenes se guardan en:
Y su programacin:

Y as sale, solo que en versiones distintas de Android, se ve diferente.

CheckBox
Se utiliza para ms de 5 opciones, donde se pueden seleccionar varias
opciones al mismo tiempo.

Y su programacin, donde solamente indica si el resultado de cada check es


TRUE o FALSE:

Ejemplo de varias CheckBox con TextViews invisibles pero usando el


isChecked() que es mejor:

Y su programacin para el primer CheckBox:

Autocompletar
Es una caja de texto como el EditTextView, en la cual se puede ayudar al
usuario a que autocomplete los datos a agregar.
Elementos a utilizar:

Programacin:

Resultado:

Icono de la aplicacin
El cono de la aplicacin, se encuentra en las carpetas mipmap, solo ah se
deben de guardar.
Una vez guardadas, lo que se debe de hacer son diferentes densidades y
solamente en formato PNG, para ese icono e ir guardndolos en cada carpeta
correspondiente.

Elementos utilizados:

Luego de agregar el nuevo cono en la carpeta mipmap, se debe de configurar


el archivo manifest.

Y luego se corrobora en el telfono:

Archivo color
Se utiliza para la parte de diseo, por defecto no aparece en Android, por lo
que debemos de crear para colocar los colores que vamos a utilizar en el
diseo de la aplicacin.
Existe una clase color que nos permite poner .red, .blue, .black, etc. Pero poner
el cdigo del color en programacin no se recomienda, ya que lo ideal es
ponerlo en el XML.
En la carpeta de recursos RES (resources), en la carpeta values vamos a
crear un archivo XML de valores y le pondremos el nombre de colors, esto de
NO venir en el Android Studio.
Si ya se encuentra, viene con tres colores por defecto:

Se pueden crear todos los colores que queramos, con el nombre que queramos.
Donde en su etiqueta se agrega su nombre y su cdigo hexadecimal, y
tendremos nuestra paleta de colores:
<color name="colorAmarillo">#FAFF00</color>

<color name="colorAmarilloClaro">#FFFBA0</color>
<color name="colorAmarilloOscuro">#DAD410</color>
<color name="colorRojo">#FF0000</color>
<color name="colorRojoClaro">#F98383</color>
<color name="colorRojoOscuro">#C93636</color>
<color name="colorVerde">#00FF00</color>
<color name="colorVerdeClaro">#A2FDA2</color>
<color name="colorVerdeOscuro">#037703</color>
<color name="colorTurquesa">#8ECFA4</color>
<color name="colorMorado">#C204FC</color>
<color name="colorRosado">#EAA9FD</color>
<color name="colorMoradoOscuro">#7E0CA1</color>
<color name="colorAzul">#0000FF</color>
<color name="colorAzulClaro">#9090FA</color>
<color name="colorAzulOscuro">#030399</color>
<color name="colorCeleste">#0299FD</color>
<color name="colorCelesteClaro">#9AD4FB</color>
<color name="colorCelesteOscuro">#0590EC</color>
<color name="colorBlanco">#FFFFFF</color>
<color name="colorGrisClaro">#CECACA</color>
<color name="colorGris">#A1A1A1</color>
<color name="colorGrisOscuro">#6E6B6B</color>
<color name="colorNegro">#000000</color>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
Y se pueden buscar los cdigos en esta pgina:
http://html-color-codes.info/codigos-de-colores-hexadecimales/

Elementos a utilizar:

Programacin, donde se crea un array de String con los colores, y el cual se


pasan sus valores a un adaptador para cargar el Spinner, y en cada posicin
del Spinner cambia el color del RelativeLayout llamado fondo:

Archivo string para crear app multi-idioma


Lo que se debe de hacer, es almacenar en un archivo los idiomas distintos de
nuestra aplicacin.
Se creara una carpeta dentro de la carpeta RES cuyo nombre de esa carpeta
depende del idioma a guardar, por ejemplo values-fr (Para Francs),
dependiendo de la Norma ISO 639-1 y se pueden encontrar aqu:
https://es.wikipedia.org/wiki/ISO_639-1

Una vez creado el directorio, copia el archivo strings.xml a la nueva carpeta del
idioma a crear exactamente con el mismo nombre, y si queda bien el cambia
su icono con la bandera del idioma.

Y se cambia el texto al idioma deseado, sin cambiar el nombre de la


cadena

Y al cambiar de idioma en el telfono, este cambia automticamente el texto


de la aplicacin al idioma configurado.
Elementos a utilizar:

Tener Orientacin Horizontal siempre (PortraitLandscape)


Esto para forzar a la aplicacin a salir siempre de manera horizontal, solamente
se agrega en el archivo Manifest, en la actividad que necesitamos, el siguiente
cdigo:

Permisos en Android
Son proteccin para el desarrollador y el usuario.
Dentro del Manifest, se encuentra la etiqueta Aplication donde se encuentra
una configuracin inicial de nuestra aplicacin.
Y en medio de la etiqueta Manifest y Aplication, se agrega la etiqueta de
permisos

ListView
El ListView se usa como una listaMenu, donde se despliegan varias opciones a
las que solamente se escoge una.

Los pasos para programar un ListView:


1. Se declara el ListView
2. Se declara un Array de String o de enteros, dependiendo del dato a
ingresar String[]
3. Se liga la parte grfica con la programada el ListView con el ID indicado
4. Para tomar los datos de la lista y pasarlos a la parte grfica del ListView,
se necesita un adaptador, como los datos estn en un Array, el
adaptador ser un ArrayAdapter, y se liga con esta sintxis
ArrayAdapter<tipo de dato> nombre de adaptador = new
ArrayAdapter<tipo de dato>
(this, Recurso Android a utilizar en el layout, nombre del ListView);
Nota: El this sirve para hacer referencia a la activity actual.
5. Se le indica que se llene el ListView(nombre)con el nombre del
adaptador
nombreListView.setAdapter(nombre del adaptador);

Para darle accin al elemento cuando se le da click, se indica que se va a


tomar ese ListView y se deja a la escucha de darle click a cualquier Item
de la lista.
Nombre ListView.setOnItemClickListener( new OnItemClickListener);
El cual nos genera un mtodo llamado onItemClick, el cual trabaja con
un Parent, un View, un position y un id.
Por lo que podemos hacerle un Switch al position, y en cada posicin del
ListView, que ejecute una accin:

ListView Personalizado
Para hacer un ListView personalizado, debemos de indicarle a Android
cual va a ser su estructura. Donde queremos ponerle una imagen al
ListView, y que cambie un texto y una imagen al ser seleccionado un
tem. Se inicia normal en su parte grfica.

En la declaracin de elementos, hacemos exactamente lo mismo.


Lo que haremos diferente, sern dos layouts para mostrar de otra
manera nuestro ListView, uno para los Items y otro para el encabezado
del ListView.
Para hacer eso, damos click derecho en el directorio de Layout y luego
crear nuevo Layout Resource file.

Donde la parte grfica del Item sera:

Y la parte grfica del encabezado:

Y luego viene la parte de programacin, donde se debe de hacer una


clase y un adapter para el ListView, en la activity que estemos usando,
click derecho nueva clase.

Y en esa clase nueva, colocamos lo que nosotros queramos que tengan


los Items del Listview, como conos, ttulos, y el constructor (podemos
usar el super() en vez del this())

Y luego programamos el constructor:

Y luego creamos el adaptador haciendo una nueva clase en la activity


necesaria

Y lo que le decimos es que esa clase va a extender de un adaptador


que ya existe, como ArrayAdapter, y en vez de ser de tipo String, va a
ser del tipo Familia, luego le definimos un contexto, para cosas que
vamos a utilizar.
Luego le hacemos un Recurso Layout Id de forma entera, y despus
hacemos un Array vaco para luego llenarlo con lo que nos llegue.
Luego hay que definir el View del Adapter que hicimos.

Cdigo del Adaptador:

Y despus la programacin en la activity Principal:

Pero no sirve mucho Sirve ms con el setOnClickListener que con el


OnItemSelected

Aplicaciones Web
En una aplicacin nativa como las que se han desarrollado anteriormente, la
base utilizada es Java, as como en IOS es Swift, pero para hacer aplicaciones
Web, se utiliza el WebView implementado encima del navegador nativo de los
celulares, donde se ejecutan todos los archivos html5, css, java ,php, ruby,
Python, etc. como si fueran aplicaciones nativas.
Donde se disea todo de manera normal, lo diferente es que lo hacemos que
abarque el ancho y largo de toda la pantalla del celular Match_parent,
luego sus declaraciones son lo mismo que con los otros elementos, y su enlace
tambin, la diferencia es que hay que agregar una URL de la Web que
queremos cargar: WebView.loadUrl(http://loquesea.com)

Luego de eso, hay que agregar los permisos en el manifest:

Y luego se usa en el celular:

Y para que cuando uno le de click a un enlace de la pgina Web no se salga de


la aplicacin, le pondremos:

Settings de los webViews

Leer el HTML local con el WebView:


Lo que se hace es hacer una aplicacin en HTML, y su archivo index se pasa
al lado de adentro de nuestra aplicacin y luego se le programa que lo lea de
ah, y ya con esto tcnicamente ya no se necesitara Internet, porque nuestros
archivos a leer estaran dentro de la aplicacin.
Primero que nada creamos un directorio en la carpeta MAIN de nuestro
proyecto y le pondremos el nombre de ASSETS, el cual va a funcionar como un
contenedor de recursos, y donde colocaremos nuestro index.html

Y se configura la nueva url con:

Y se prueba, an con el hipervnculo que existiera en el archivo html:

Y para cargar un archivo CSS en ese mismo archivo html se hace su enlace.

Se agrega en el mismo directorio:

Y se ve el cambio:

Y para ver JavaScript, y el archivo javascript se copia en el mismo directorio


assets:

Luego se le indica a la activity, que active el Javascript:

Solo que no se debe de habilitar, por seguridad.


Media Player en Android, reproduciendo sonido
Lo normal es tener nuestro archivo de media dentro de nuestra aplicacin para
reproducir sonido.
En la carpeta RES (Recursos) agregamos un directorio y lo llamamos RAW,
ah guardaremos nuestros archivos multimedia, creamos nuestros botones de
iniciar y parar, los declaramos, los ligamos y los dejamos a la escucha con un
setOnClickListener.

Luego utilizaremos la clase Mediaplayer para reproducir sonidos solamente, la


que declararemos posteriormente, y despus lo creamos y le indicamos que
archivo va a utilizar (el archivo debe de ir en minsculas, nmeros y el
underscore solamente).
Una vez creado, se inicializa creando unas funciones para eso.

TextWatcher
Lo que hace esta clase, es darse cuenta de si cambia algn tipo de texto o
cadena y cuando.

Y as su salida:

Qu es un Fragment?
Es un fragmento de cdigo, parte de la pantalla o una parte de la pantalla.
Como regla, siempre debe de estar un Fragment dentro de una activity, o
puede haber varios fragments dentro de una activity.
Un fragment tiene su propio ciclo de vida, diferente al de una activity, el ciclo
del fragment es mayor al de una actividad.
En la imagen de la izquierda, una activity conteniendo un fragmento A llama a
otra actividad conteniendo un fragmento B, esto en un celular.
En cambio en una Tablet, ambos fragmentos pueden estar en la misma
pantalla, a esto se le llama Master/Detail, donde el Master sera el lado
izquierdo de la pantalla el cual indica que es lo que se va a ver y el detail es el
que muestra a partir de lo que se selecciona.

Declarando un Fragment en XML


Agregando cdigo en un XML en la parte de su Layout:

Y se agrega una clase a su activity, llamada igual al id de la etiqueta del lado


XML

El mtodo a utilizar en esa clase sera el OnCreateView, le cual va a recibir un


LayOutInflater, que recibe un ViewGroup con un nombre especfico

Luego crea la parte grfica de esa clase:

Y luego para que la activity que estamos usando, llame al fragmento que
acabamos de hacer, se agrega en la parte de Java de esa activity, la clase del
fragment que acabamos de hacer:

Y se prueba que cargue ese Fragmento, y aunque la activity est en modo


horizontal y el fragmento en vertical, el cargar de la manera del fragmento:

Dos Fragments en una pantalla


Modificaremos el activity donde vamos a utilizar los dos Fragmentos, y
agregamos otro:
Para tener los dos, su ancho lo variamos a 0DP el de ambos Fragments, y a
ambos, les pondremos el mismo en su Layout.
Y luego crearemos los archivos correspondientes, como su archivo grfico
(XML)

Y su archivo lgico (.java).

Y le indicamos la clase a utilizar en nuestra activity:

Y algo as saldra:

Definiendo elementos en un Fragment


Creamos los elementos en el Fragmento, y los declaramos de la misma manera
en que siempre se ha hecho, lo mismo su enlace:

Y su programacin:

Y aqu en esta parte donde vamos a enviar datos, es donde vienen las
Interfaces.
Qu es una interfaz?
Un Fragment A no va a mandar un dato al Fragment B, porque son porciones de
cdigo, los mismos pueden ser modificados o eliminados, donde tiene que
existir un intermediario, la cual va a ser la activity, y la forma en que los
Fragments se comunican con la activity, es por medio de una interfaz.

Para eso, primero hay que declarar una interfaz, y esto se hace en el directorio
donde se encuentran los fragmentos y se le indica crear una nueva interfaz en
vez de una nueva clase.

Aqu solamente vamos a declarar mtodos, decirle que va a hacer, pero no


como lo va a hacer.
Solamente se escribe el nombre del mtodo y que va a recibir, es muy similar
al OnClickListener.

Luego viene la interaccin con los diferentes Fragmentos.


Interaccin con diferentes Fragments
Para lograr implementar esta interaccin con varios fragments con la interfaz,
se debe de generar a partir de esa interfaz, la comunicacin.
Por lo que analizamos que esa comunicacin se da cuando se le d click al
botn, as que declaramos ah mismo la interfaz.

Luego en nuestra activity, implementamos esa interface:

Pero antes hacemos un mtodo onAttach en la programacin de la activity que


inicia el envo del dato.

Y luego programamos en nuestra activity principal que se le va a enviar datos


al fragmentB:

Y luego en FragmentB, hay que crear un mtodo para recibir ese dato.

Y en la activity principal, mandamos a llamar al mtodo:

Otra manera de crear Fragmentos (ms rpida):


Se hacen las clases para cada fragmento a necesitar:

Y el sistema crea de una vez los archivos grficos XML:

Se les vara el Background para diferenciarlos:

En la activity principal, se declaran los fragmentos y se declara la propiedad


NAME:

Si no renderizan bien, se les da click en los enlaces que saca el preview:

Y luego se implementa el mtodo en la parte de Java del activity principal:

Fragmentos Dinmicos
Se crea en la activity principal esta parte grfica:

Luego se crean los otros dos Fragmentos:

Y en el activity principal, se programa:

Recordar importar:

Y as se vera:

Dibujando en Android
En nuestro archivo grfico, XML, solamente dejamos el Layout, mientras que en
nuestro archivo lgico .Java, creamos nuestra propia vista de esta manera:

Y luego su programacin total:

Haciendo vibrar el telfono


Crea la parte grfica:

Crea la parte lgica:

Y agrega los permisos al manifest:

Utilizando el flash de la cmara


Parte Grfica:

Parte lgica:

Permisos:

Temas
Es la fachada de la aplicacin, como la Material Light o Material Dark que
ya estn hechos en Android, los cuales podemos personalizar nosotros, o hacer
los nuestros.
Los temas estn muy relacionados a los estilos, los cuales se encuentran en el
directorio RES/Values

Donde indica el nombre del tema al que estn ligados esos estilos, y tambin
en el archivo Manifest:

Qu es un estilo?
Es una coleccin de propiedades que especifican el formato y la vista de una
ventana, se puede especificar propiedades como altura, margen, color, fuente
etc. similar a un estilo CSS de HTML.

Mientras que un Tema, es un estilo aplicado a una Activity o aplicacin


completa

Para agregar un estilo, en el directorio RES:

Y en el Item Name, es donde se le agrega la parte donde se va a ejecutar ese


estilo:

Donde tambin se le puede indicar que tipo de dato se va a utilizar:

Y en la parte grfica, se declara el estilo a usar en ese elemento:

Definiendo un Tema
Primero creamos un estilo, al cual le podemos definir un tema de una herencia
de un tema padre:

Pero vamos a crear uno a partir de cero:

Y luego se define en el Manifest:

Donde se puede definir por aplicacin o por activity:

Activity con Men


Para crear un men, se deben de crear varios archivos en el directorio RES, ah
creamos un directorio llamado men, donde se van a alojar todos los estilos de
los menues que vamos a realizar, y donde el men principal lleva el nombre
de main

Una vez adentro del archivo del men, colocaremos los distintos Items de los
que compone nuestro men.

Mtodos para crear un Men


Lo habitual es trabajar un men e inflarlo o rellenarlo con lo que tenemos en el
XML con un mtodo Inflater:

Ejecutar acciones en el Men


Lo que se hace es sobre escribir un mtodo que ya existe en la parte de Java
del Men:

Haciendo Submenues (NO recomendable)


Se configura solamente la parte grfica (XML), agregando ms Items como si
fuera otro men ms:

Y su parte lgica:

Creando Pestaas o Tabs en las activities


Para crear pestaas en nuestra activity, lo principal es que debe de tener
ciertas etiquetas con IDs nicos, la etiqueta <TabHost> con el
ID:@android:id/tabhost, la etiqueta <TabWidget> donde se alojarn las
pestaas con el ID: @android:id/tabs, y la etiqueta <FrameLayout>
donde se alojar el contenido de cada pestaa con el ID:
@android:id/tabcontent.

Dentro de los cuales agregaremos un LinearLayout por cada pestaa


necesitada:

Y cuya parte de programacin, sera la siguiente:

Donde en la parte del setIndicator se le dice si aparece texto o un cono.

Toolbar
Con la Toolbar tenemos diferentes opciones, es un widget al que podremos
poner o quitar, vamos a tener que utilizar el tema Appcompat, se puede
trabajar con el Actionbar o sola.

El ActionBar

Son bastantes tiles, ya que en la parte de arriba de una activity, se


encuentran herramientas como un men o bsquedas.

En el directorio RES, hacemos un directorio men:

Y adentro de men agregamos un nuevo archivo (resources files) llamado


menu_main

Ya en el archivo agregamos estas lneas:

Y agregamos los diferentes Items:

Y su parte de programacin:

Y as se ve:

Iconos para diseo en Android


Nos metemos a la pgina: https://design.google.com/icons/
Escogemos el que nos agrade, le indicamos su tamao y color, y luego el
formato a bajarlo:

Escogemos el que necesitamos, ya sea para Android, IOS o Web y copiamos


todas sus carpetas a la carpeta Drawable de nuestro proyecto

Depuracin en Android
La parte de depuracin en Android, se usa en la parte del Android Monitor,
especficamente en el LOGCAT, donde le indica todos los errores que han
ocurrido

Donde se indica, primero el mes, la fecha, la hora, el cdigo del error, y por el
color nos indica que tan crtico es el error

Tambin salen enlaces a los que lo envan a la lnea exacta del error

Tambin se pueden filtrar esos logs por medio de su categora:

Verbose: Mensajes ms detallados para el desarrollador


Debug: Mensajes para los desarrolladores no tan especfico, hasta los creados
por el mismo
Info: Informacin cuando un proceso ha finalizado
Warn: Mensajes de precaucin o avisos de alertas
Error: Cuando hay algo crtico y malo

Cmo crear mensajes en el LOGCAT?


Para esos mensajes, utilizamos la clase log, el .d es un mensaje de depuracin
y debe de llevar un logcat.
Primero se declara como privado, esttico, cadena TAG el nombre que indique
que es un log

Luego lo programamos cuando quiera uno que salga:

Y se busca:

Haciendo una Splash Activity


Se necesitan dos Activities, una para la Splash y otra para el inicio de la
aplicacin.
Cosas Importantes:
La activity con la Splash en su manifest debe de tener las siguientes
caractersticas para que arranque de primero:
Debe de tener un tema sin ttulo y a pantalla completa, y debe de ser el
Launcher:

Mientras que la otra activity debe de ser la default:

Y el tema de la aplicacin entera si puede tener ttulo normal:

Luego de esto, se debe de programar en la parte lgica de la activity con el


Splash, un tiempo que dure activa la misma y luego se pase a la otra pantalla
despus de concluir con ese tiempo.
Para esto utilizaremos un Handler(), pero no de Java, sino que de Android
(Alt+Enter para importar la clase de Android)

Y esto es lo que necesitaremos:

Haciendo botones animados


Creamos grficamente los botones:

En la carpeta Drawable, creamos un nuevo recurso donde meteremos las


imgenes de los botones

En la parte de Selector, agregamos lo siguiente para la parte presionada y la


no presionada:

Y en el activity principal, cambiamos su background por el recurso animado


que hicimos

Si hace el efecto de un botn que cambia de tamao, en Photoshop le cambia


de tamao, pero usando el mismo lienzo:

Para agregarles sonidos a los botones, simplemente agregamos una carpeta de


recursos en la carpeta RES y la llamamos RAW, y ah agregaremos los sonidos
de los botones, y para llamarlos, as sera la programacin:

Haciendo un Swipe ViewPager


Para hacer un Swipe ViewPager, primero que nada escogemos la activity
Tabbed Activity

Se puede indicar que la activity va a tener una Action Bar con Tabs, pero le
decimos Swipe Views.

Con Tabs

Con Spinner

Luego creamos los Fragmentos con los que vamos a llenar esa Activity

En la parte lgica de la activity principal, buscamos el mtodo getCount() el


que nos indica cuantos fragmentos vamos a utilizar, si fueran ms
cambiaramos ese nmero que viene de 3

Y el mtodo CharSequence(), es la parte que nos va a retornar una cadena de


String, segn la seccin que estar siendo mostrada

Y el mtodo PlaceHolderFragment() es donde se le indica cmo nos coloca los


Fragmentos en nuestra aplicacin.

Y eliminamos ciertas sentencias:

Quedando de esta manera:

Luego implementa los mtodos OnFragmentInteractionListener para cada


fragmento hecho

Para quitar el error en return fragment;

El Navigation Drawer
Empezaremos creando una activity como Navigation Drawer, el cual queda
como un men del Action Bar.

En el cual el crea varios XML ms:

Luego creamos los Fragmentos a necesitar:

En el XML nuevo creado en la carpeta RES/MENU en el archivo


activity_principal_drawer.xml cambiaremos el men por lo que
necesitamos.

El degradado del color del drawer, lo puede cambiar en el archivo


side_nav_bar.xml.

Y esto le pondra de cono en el men:

En el archivo content_principal.xml se configura su pantalla principal

En el archivo principal.xml se configura el men del Action Bar

En el archivo app_bar_principal.xml se configura la barra de arriba y el cono


de abajo

Y en el archivo activity_principal.xml se configura el Men de Navigation


Drawer

Una vez que cambia lo necesario, en la parte lgica del archivo principal.java le
programamos los fragmentos a utilizar

Primero creamos un fragmento afuera de los IF

Y luego al Layout principal, le ponemos un ID llamado contenedor.

Luego en la parte lgica de la activity principal para cada uno de los


fragmentos:

Y al final de todas las condiciones IF:

Luego implementamos los mtodos OnFragmentInteractionListener de


todos los fragmentos y se prueba la aplicacin.

Si se va a crear una nueva activity, pero que no sea un fragmento:


Para que en el ActionBar le quede el botn de ir a la Activity principal o
anterior, en el manifest o desde que se hace, se le indica la jerarqua a la que
pertenece, con la parte de Meta-data:

Y recordar colocarle a esa nueva activity un Tema que no tenga


ActionBar, sino se encicla.
Se le puede quitar el FloatingActionButton, si no lo necesita, en el archivo .Java
y en el activity-XXX.XML. Pero se le quita la flecha de retroceso.

Para que no se le quite la flecha de retroceso, quita todo lo mismo de antes,


pero solamente le deja el getSupportActionBar() del archivo .java de la
activity nueva.

Para hacer un Webview en esa nueva activity, se crea en la parte de Content,


se recomienda no borrar los mrgenes, o dejarlos en cero:

Y luego se programa su parte .Java:

El color de la barra de accin se cambia en la parte activity_xxx.xml

Luego para llamar a esa nueva activity, se programa desde donde se quiere
llamar:

Y as se vera:

Guardando datos en Android


Primero creamos su parte grfica:

Y luego su parte lgica:

Los botones guardar y mostrar:

Y el botn salir:

VideoView con video por Internet


Se crea la interfaz grfica:

Se programa:

Y se agregan los permisos en el manifest:

Y as se ve :

VideoView con video sin Internet, modo local


Todo el mismo diseo anterior, solamente que en el directorio RES, creamos
otro llamado RAW, y ah mismo tiene que ir el video a reproducir en la
aplicacin.

Y su programacin:

Pero no sirvi
El Date Picker
Hacemos sus grficos:

Y hacemos su programacin:

Recordar que a los meses hay que sumarle 1

Rating Bar
Su parte grfica:

Y su parte programada:

Toast con diferente posicin y dos mensajes

Esta sera su programacin:

Laboratorio # 1Vida de una activity.


En estos mtodos, la pantalla est visible:

En estos mtodos la pantalla no est visible:

Al ejecutar la APP:
04-15 01:25:43.522 26671-26671/XXXXX.com.talleractivitiy D/Activity: Estoy en
onCreate()
Es donde se da las inicializaciones.
04-15 01:25:43.526 26671-26671/ XXXXX.com.talleractivitiy D/Activity: Estoy
en OnStart()
Se llama cuando voy a iniciar (Ejemplo aqui puedo llamar al webservice o aqui
puedo enviar un mensaje)
04-15 01:25:43.526 26671-26671/ XXXXX.com.talleractivitiy D/Activity: Estoy
en onResume()
si el proceso que est en el onstart es muy largo se puede hacer aqui tambien.
(Ejemplo: tambien se puede trabajar el webservice aqui)
Al pasar a Background:
04-15 01:26:03.212 26671-26671/ XXXXX.com.talleractivitiy D/Activity: Estoy
en onPause()
se llama antes de que se vaya al background, aqui se guardan los estados del
activity.
despues de restaurar se vuelve a llamar.
04-15 01:26:03.950 26671-26671/ XXXXX.com.talleractivitiy D/Activity: Estoy
en onStop()
ya no se ve nada. (Ejemplo aqu detener el sensor) se hace el realease o la
liberacion de lo que no ocupemos (liberar memoria).
y despues del onpause se vuelve a llamar.
Al pasar a activarla de nuevo:

04-15 01:26:18.929 26671-26671/ XXXXX.com.talleractivitiy D/Activity: Estoy


en onRestart()
es el primer mtodo que llama cuando la actividad vuelve.

04-15 01:26:18.932 26671-26671/ XXXXX.com.talleractivitiy D/Activity: Estoy


en onDestroy()
antes de que el garbage collector pase. Si se cierra la aplicacin se llama aqui.

Ciclo de vida de un Fragmento

Animaciones

Se crea el XML:

Creamos una carpeta llamada anim donde se van a meter todas las
animaciones, y la misma va dentro de la carpeta RES:

Luego se crea un archivo XML como animation resources file, a lo que luego le
indica el nombre de animacin que va a realizar, es un archivo por cada

animacin, y despus agrega la etiqueta <rotate></rotate>, o


<scale></scale>, o <translate></translate>, o <alpha></alpha>,
dependiendo de la animacin requerida.

Y se configura:

Y su parte lgica:

Leyendo archivos XML


Se crea una carpeta llamada assets dentro de la carpeta MAIN:

Luego creamos un archivo XML dentro de esa nueva carpeta:

Luego hacemos una lista:

Luego creamos una nueva clase llamada producto con sus debidos atributos
(datos):

Cada atributo debe de tener un get y un set (obtener o enviar un dato), hacer
esto se llama POJO

Luego le damos formato a los datos que vamos a recibir:

Definimos las variables que vamos a utilizar:

Luego hacemos una clase PullParser para que lea el XML y lo pase a una lista
en un array, y luego hacemos el mtodo que vamos a utilizar, donde se
parsean los datos:

Y as queda la parte lgica del principal:

Y as su salida:

Leyendo un JSON

JavaScript Object Notation para el intercambio de datos y manejo de objetos, y


que no requiere XML.
http://www.json.org/json-es.html

JSON est constituido por dos estructuras:


Una coleccin de pares de nombre/valor. En varios lenguajes esto es
conocidos como un objeto, registro, estructura, diccionario, tabla hash,
lista de claves o un arreglo asociativo.
Una lista ordenada de valores. En la mayora de los lenguajes, esto se
implementa como arreglos, vectores, listas o secuencias.
Estas son estructuras universales; virtualmente todos los lenguajes de
programacin las soportan de una forma u otra. Es razonable que un formato de
intercambio de datos que es independiente del lenguaje de programacin se base
en estas estructuras.
En JSON, se presentan de estas formas:
Un objeto es un conjunto desordenado de pares nombre/valor. Un objeto
comienza con { (llave de apertura) y termine con } (llave de cierre). Cada nombre es
seguido por : (dos puntos) y los pares nombre/valor estn separados por , (coma).

Un arreglo es una coleccin de valores. Un arreglo comienza con [ (corchete


izquierdo) y termina con ] (corchete derecho). Los valores se separan por, (coma).

Un valor puede ser una cadena de caracteres con comillas dobles, o un nmero,
o true o false o null, o un objeto o un arreglo. Estas estructuras pueden
anidarse.

Una cadena de caracteres es una coleccin de cero o ms caracteres Unicode,


encerrados entre comillas dobles, usando barras divisorias invertidas como
escape. Un carcter est representado por una cadena de caracteres de un nico
carcter. Una cadena de caracteres es parecida a una cadena de caracteres C o
Java.

Un nmero es similar a un nmero C o Java, excepto que no se usan los formatos


octales y hexadecimales.

Los espacios en blanco pueden insertarse entre cualquier par de smbolos.


Donde creamos el archivo con la clase File:

Y creamos un mtodo para crear el archivo JSON:

Donde antes de crear el archivo, se puede observar la ruta del mismo:

Y as agregamos los productos con una JSONexcepcin, y le decimos que esos


datos son un String :
Donde definimos la salida de este archivo, tambin realizando las excepciones:

Luego definimos la lgica del botn de crear archivo, siempre con las
excepciones:

Y lo probamos:

Luego hacemos el mtodo de leer el archivo:

Y programamos el botn:

Y as ser el resultado:

SharedPreferences (para guardar datos localmente)


Parte grfica:

Parte lgica y su salida:

Webservice o servicios web


Un servicio web (en ingls, Web Service o Web services) es una tecnologa que
utiliza un conjunto de protocolos y estndares que sirven para intercambiar
datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en
lenguajes de programacin diferentes, y ejecutadas sobre cualquier
plataforma, pueden utilizar los servicios web para intercambiar datos en redes
de ordenadores como Internet.
Estndares empleados
Web Services Protocol Stack: As se le denomina al conjunto de servicios y
protocolos de los servicios Web.
XML (Extensible Markup Language): Es el formato estndar para los datos
que se vayan a intercambiar.
SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure
Call): Protocolos sobre los que se establece el intercambio.
Otros protocolos: los datos en XML tambin pueden enviarse de una
aplicacin a otra mediante protocolos normales como HTTP (Hypertext Transfer
Protocol), FTP (File Transfer Protocol), o SMTP (Simple Mail Transfer Protocol).

WSDL (Web Services Description Language): Es el lenguaje de la interfaz


pblica para los servicios Web. Es una descripcin basada en XML de los
requisitos funcionales necesarios para establecer una comunicacin con los
servicios Web.
UDDI (Universal Description, Discovery and Integration): Protocolo para
publicar la informacin de los servicios Web. Permite comprobar qu servicios
web estn disponibles.
WS-Security (Web Service Security): Protocolo de seguridad aceptado
como estndar por OASIS (Organization for the Advancement of Structured
Information Standards). Garantiza la autenticacin de los actores y la
confidencialidad de los mensajes enviados.
REST (Representational State Transfer): arquitectura que, haciendo uso
del protocolo HTTP, proporciona una API que utiliza cada uno de sus mtodos
(GET, POST, PUT, DELETE, etc) para poder realizar diferentes operaciones entre
la aplicacin que ofrece el servicio web y el cliente.

Para el siguiente ejemplo utilizaremos el siguiente web service:


http://maloschistes.com/maloschistes.com/jose/datos.php

Recordar agregar en el Manifest los permisos a utilizar:

Primero agregaremos la dependencia del recyclerView en el gradle:

Y agregamos en la parte de diseo, un recycler, en vez de un listview:

Luego verifica los datos que va a recoger del webservices, para hacer los
POJOS, esto se hace creando la clase de java pura, con el nombre de los datos
que vamos a recibir y con sus atributos y mtodos:

Atributos:

POJOS:

Tambin se pueden generar seleccionando los atributos y generando los getter


and setter

Luego hay que llenar el recyclerView o listView con los datos, utilizando los
adapters o adaptadores, donde en la parte lgica Principal, vamos a crear una
lista del tipo de la clase que acabamos de hacer, y con el nombre para esa
lista.

Configuramos el OnCreate con lo que vamos a utilizar:

Luego creamos el mtodo en que inicializa los datos para poder extraerlos de
una buena manera:

Donde verificamos primero si existe conexin a internet y luego al sitio del


webservices:

Pero hacindolo de una mejor manera, se hace as:

Si est en lnea, le digo que me traiga los datos, creando otro mtodo
(requestData), indicando la URL como cadena, de donde estn esos datos:

Donde si el mtodo para extraer esos datos dura ms de 3 segundos, se debe


de hacer en una tarea aparte de la tarea principal (debe ser en otro hilo), una
tarea asncrona.
Por lo que haremos una clase privada para la clase extendida AsynTask con el
mtodo doInBackground para luego usarlo en nuestro mtodo:

Y que se ejecuta de la siguiente manera:

Donde adems existen otros tres mtodos en el AsynTask:

La clase que nos va a permitir traer los datos, se llama HTTP URL connection,
por lo que creamos una nueva clase de java para administrar esas peticiones
HTTP:

Donde crearemos un mtodo para traer esos datos y lo llamaremos getData

Y volvemos a la parte lgica del principal para agregar lo del HTTPManager:

Y luego de que nos llega el contenido, lo pasamos al recycler en la parte del


onPostExecute, pero antes tenemos que crear un parser, para parsear los
resultados:

Una vez ya cargado en esa parte, nos disponemos a cargar los datos en el
recyclerView con un adapter con la clase ViewHolder y su constructor, y donde
hacemos otro mtodo, que llamaremos llenaRecycler():

Pero antes de esto hay que definir como queremos que se vean los datos
dentro del recycleView, el cual permite ver los datos como una tarjeta, pero
para eso hay que agregar las dependencias dentro del gradle:

Y aqu su adaptador, pero primero agrega la clase con el ViewHolder:

Luego generamos el llenaRecycler:

Y hasta aqu se vera si:

Librera Picasso (manipulacin de imgenes en Base de


Datos)
http://square.github.io/picasso/
Agregamos la dependencia y los cambios necesarios en los POJOS, en el
JsonParser, en el Layout de su vista, y el adaptador
(Viewholder,BindViewHolder) :

Y agregamos la siguiente lnea en el BindViewHolder del adaptador:

Haciendo peticiones a un servidor REST


Vamos a utilizar el siguiente enlace de un servidor REST:
http://maloschistes.com/maloschistes.com/jose/rest.php
Donde este sera el cdigo PHP para hacerlo:

Lo que hace es imprimir el Server, el Request_method (Get o Post) y el request


(peticin)
Luego imprime los datos por lnea
Y finalmente imprime los tipos de datos que llegaron
Ejemplo de una peticin donde se envan los datos alumno y edad:
http://maloschistes.com/maloschistes.com/jose/rest.php?
alumno=Carlos&edad=48

Pasos para realizar estas peticiones:


Hacemos una clase llamada RequestPackage:

Pero primero hay que modificar en el archivo Java del principal el


doInBackground:

Luego configuramos el HttpManager no solo para recibir datos,


tambin para enviar:

Y luego cambiamos en el Principal.java

Luego hacemos un botn:

Y su parte lgica:

Y para hacer un ProgressDialog, agregamos un ProgressBar en la


partde de xml:

La declaramos en la parte lgica como invisible:

Y antes de cargar los datos la hacemos visible:

Y luego de que termina de cargar los datos, la volvemos invisible:

Para que una activity NO cambie sus datos al ser rotada, agregar la parte
marcada en azul en su Manifest:

Você também pode gostar