Post on 04-Feb-2020
Proyectos de desarrollo para dispositivos móviles
PrácticaAndroid.
❖ Menú lateral❖ RecyclerView❖ Networking
Creando el proyecto
❖ Crea un proyecto nuevo.
❖ Escribe tu nombre en el proyecto.
❖ Selecciona API 19 como mínimo.❖ Selecciona como tipo de
actividad Navigation Drawer Activity.
❖ La actividad principal es MenuPrincipalActiv
TuNombre
Prueba❖ Corre la app y verifica el funcionamiento.
❖ Observa el comportamiento del botón de menú (arriba-izquierda)
Personalizar el menú❖ Cambia el menú para que
muestre las opciones como se ve en la imagen. Muestra tu información.
❖ Ajusta el método onNavigationItemSelected para atender a las tres nuevas opciones.
❖ Agrega al Manifiesto el permiso de INTERNET.
public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. int id = item.getItemId();
if (id == R.id.nav_descarga_texto) { // Handle the camera action } else if (id == R.id.nav_descarga_imagen) {
} else if (id == R.id.nav_descarga_json) {
} ...
nav_header_menu_principal.xml
strings.xml
activity_menu_principal_drawer.xml
Descargar texto de la red❖ Crea un fragmento (DescargaTextoFrag)
que servirá para mostrar cómo descargar un recurso desde la red.
❖ Configura los componentes como se ve en la figura.
❖ El ScrollView servirá como contenedor del TextView que podrá mostrar una gran cantidad de texto.
❖ Al iniciar el fragmento, descargamos el contenido desde la red.
Fast Android Networking
❖ https://github.com/amitshekhariitbhu/Fast-Android-Networking
❖ Agrega la librería y sincroniza:implementation 'com.amitshekhar.android:android-networking:1.0.2'
❖ Inicializa en onStart:AndroidNetworking.initialize(getApplicationContext());
❖ Programa la descarga en onResume:AndroidNetworking.get("https://www.gutenberg.org/cache/epub/2000/pg2000.txt")
.build() .getAsString...
Muestra el fragmentoMuestra el fragmento cuando el usuario selecciona esta opción en el menú.
public boolean onNavigationItemSelected(MenuItem item) { // ...
if (id == R.id.nav_descarga_texto) { DescargaTextoFrag fragDescargaTexto = new DescargaTextoFrag(); FragmentTransaction transaccion = getSupportFragmentManager().beginTransaction(); transaccion.replace(R.id.contenedorFrag, fragDescargaTexto); transaccion.commit(); } else if (id == R.id.nav_descarga_imagen) {
} else if (id == R.id.nav_descarga_json) {
}
return true; }
Prueba❖ Corre la aplicación y verifica que descarga el
contenido en texto. El texto es extenso, espera a que cargue.
❖ Prueba con otros recursos en la red, incluyendo scripts en PHP.
❖ RETO: muestra una animación de espera mientras descarga el contenido.
private void mostrarDialogoEspera() { this.dialogoEspera = new ProgressDialog(this); // this = actividad dialogoEspera.setProgressStyle(ProgressDialog.STYLE_SPINNER); dialogoEspera.setMessage("Descargando..."); dialogoEspera.setIndeterminate(true); dialogoEspera.setCanceledOnTouchOutside(false); dialogoEspera.show(); }
Descargar contenido binario❖ Crea un Fragmento
(DescargaImagenFrag) que servirá para mostrar cómo descargar un recurso binario desde la red.
❖ Configura los componentes como se ve en la figura.
❖ El ImageView servirá para mostrar el contenido descargado.
Fast Android Networking
❖ https://upload.wikimedia.org/wikipedia/commons/d/dd/Big_%26_Small_Pumkins.JPG
❖ Inicializa:AndroidNetworking.initialize(this);
❖ Programa la descarga:AndroidNetworking.get("https://upload.wikimedia.org/wikipedia/commons/d/dd/Big_%26_Small_Pumkins.JPG") .setPriority(Priority.MEDIUM) .build() .getAsBitmap...
Prueba❖ Muestra el fragmento cuando el
usuario selecciona esta opción en el menú.
❖ Corre la aplicación y verifica que descarga la imagen.
❖ RETO: muestra una animación de espera mientras descarga el contenido.
Descargar desde un Webservice❖ Prueba descargando el texto de los siguientes webservices:
❖ https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=hacker&format=json
❖ https://newton.now.sh/derive/x^4+2x-1
❖ Crea un fragmento para la tercera opción y muestra información de libros. Utiliza un RecyclerView para mostrar los resultados.https://www.googleapis.com/books/v1/volumes?q=isbn:9781449362188
https://www.googleapis.com/books/v1/volumes?q=title:android