¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Desarrolle una aplicación Android
  3. Salir de la aplicación
Extrait - Desarrolle una aplicación Android Programación en Java con Android Studio
Extractos del libro
Desarrolle una aplicación Android Programación en Java con Android Studio
1 opinión
Volver a la página de compra del libro

Salir de la aplicación

Desarrollar un widget

Los widgets pueden verse, en el universo Android, como partes de aplicaciones que se muestran directamente en el escritorio del terminal. Permiten, en general, presentar una información breve, actualizada regularmente, propia de la aplicación que provee el widget.

La aplicación LocDVD debe disponer de un widget que muestre, a intervalos regulares, una película al azar de entre la lista de DVD de la aplicación. Por otro lado, cuando el usuario haga clic en la película, el widget debe actualizarse y mostrar otra película.

images/12EIT01.png

Los widgets se basan en la clase android.appwidget.AppWidgetProvider, clase que debe sobrecargarse, según el mismo principio de las actividades y los fragmentos. Sin embargo, como se detalla a continuación, el funcionamiento de un widget y su implementación son muy diferentes de los de una actividad clásica o incluso de un fragmento. La clase AppWidgetProvider es, de hecho, una subclase de la clase BroadcastReceiver (que vimos, en particular, en el capítulo Tareas asíncronas y servicios, en la sección Utilizar los receptores de eventos).

La interfaz de visualización de un widget se basa, como para los demás componentes de una aplicación, en un archivo de layout. Sin embargo, conviene tener en cuenta que, si bien son compatibles con los componentes clásicos, no todos los componentes de la plataforma son compatibles con los widgets; veremos más adelante cuál es el motivo.

 Defina, en la carpeta /res/layout, un archivo de layout para el widget. Su nombre es, por ejemplo, widget_layout.xml.

 El layout es muy simple: un primer componente TextView muestra el título del DVD, y un segundo TextView se encarga de mostrar, debajo, el resumen de la película. El título debe estar escrito en caracteres de 22 sp de tamaño, el resumen en tamaño 14 sp. También hay que prever un color diferente para el fondo del layout (propiedad background del contenedor de vistas raíz) y para el texto (propiedad textColor de los componentes TextView).

El archivo de layout es el siguiente:


<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout   
xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"   ...

Utilizar la barra de notificaciones

Utilizar la barra de notificaciones del terminal es una manera sencilla de informar al usuario: inmediatamente visibles, rápidas de implementar, las notificaciones son una herramienta potente para el desarrollador.

Inicialmente, una notificación está compuesta por un icono, un título en una línea, una segunda línea de texto que utiliza una tipografía de tamaño inferior, así como una fecha. La versión 4 de Android (API 14) incorpora la posibilidad de definir notificaciones extendidas, que presentan además una imagen (con una altura máxima de 256 dp), o bien distintos controles para la visualización del texto.

Incluso aunque esta característica no es realmente interesante para la aplicación LocDVD, permite enviar una notificación al usuario cuando pide mediante un clic en un botón visitar la ficha detallada del DVD.

 Edite el archivo de layout de la ficha de visualización de un DVD, el archivo activity_viewdvd.xml.

 Agregue, debajo del botón Modificar la fecha de última visualización, un botón Enviar una notificación. Además, el botón debe tener como identificador el valor setNotification.


<Button  
    android:layout_width="match_parent"  
    android:layout_height="wrap_content"  
    android:text="@string/enviar_una_notificación"  
    android:id="@+id/setNotification"/>
 

Conviene destacar que la cadena de caracteres enviar_una_notificación debe definirse en el archivo strings.xml.

 Visualice el código del fragmento ViewDVDFragment en el editor de código. Hay que agregar una referencia al botón setNotification:


Button  setNotification =  
(Button)view.findViewById(R.id.setNotification);
 

 Defina un objeto OnClickListener para el botón. El evento onClick debe producir la ejecución de un nuevo método privado, sendNotification


setNotification.setOnClickListener(new...

Compartir contenido y utilizar las redes sociales

Las redes sociales están integradas naturalmente con los terminales Android, y los usuarios esperan a que cada aplicación permita compartir contenido en una o varias redes sociales.

Si bien las principales redes sociales proporcionan, para integrar esta compartición de contenido en una aplicación, sus propias API, Google provee una solución que aprovecha la potencia ofrecida por las intenciones.

Esta solución no es perfecta; las opciones de compartición no explotan todas las posibilidades de cada red social, pero permite sin embargo implementar una funcionalidad de compartición rápidamente y garantizando que el mantenimiento será sencillo.

La primera etapa consiste en agregar una opción en el menú accesible a través de la barra de navegación de la aplicación. Esta barra de acción, implementada en el capítulo Navegación y ventanas emergentes, utiliza la biblioteca de compatibilidad android.support.v7. La opción Compartir que se va a agregar debe tener en cuenta esta biblioteca.

 Edite el archivo de menú de la actividad principal, es decir, el archivo menu_principal.xml.

 Hay que agregar una entrada a este menú, entrada que debe mostrar la etiqueta Compartir. El código correspondiente es, por ahora, el siguiente:


<item  
    android:id="@+id/menu_compartir"  
    android:title="@string/compartir"  
/>
 

Para indicar al sistema que la entrada de menú debe iniciar una acción de compartición de contenido, hay que informar la propiedad actionProviderClass asignándole el valor android.widget.ShareActionProvider. El código correspondiente debería ser el siguiente:...