Download Ejercicios de Android Studio and more Assignments Law in PDF only on Docsity!
Universidad Católica Andrés Bello
Ejercicios Android
Prácticas para la materia Programación en Ambiente Android. Rev 1.
Recopilado, traducido y adaptado por: José Gregorio Castillo Pacheco 25/05/
Contenido
- Introducción .............................................................................................................................................
- Capítulo 1: ................................................................................................................................................
- La primera aplicación: “Hello World”...................................................................................................
- Tarea 1. Creación del proyecto .......................................................................................................
- Tarea 2. Ejecutar la aplicación..........................................................................................................
- Tarea 3. Creación de una interfaz de usuario sencilla
- Tarea 4. Iniciar otra activity...........................................................................................................
- Capítulo 2:
- 2.1 Vistas, ViewGroups, Layouts.
- Tarea 1. Creación del proyecto
- Tarea 2: Agreguar vistas a "Hello Toast" en el Editor de diseño
- Tarea 3: Editar el diseño "Hello Toast" en XML
- Tarea 4: Agregar controladores onClick para los botones
- 2.2 Usando Layouts
- Resumen de la aplicación
- Tarea 1: Cambiar el diseño a RelativeLayout
- Tarea 2: Cambiar el layout a ConstraintLayout
- Tarea 3: Crear variantes del diseño...............................................................................................
- 2.3 Trabajando con Elementos TextView
- Resumen de la aplicación
- Tarea 1: Agregar varios text views
- Tarea 2: Agregar enlaces Web activos y un ScrollView
- Tarea 3: Desplazar elementos múltiples
- Capítulo
- 3.1 Creando e Iniciando Activities
- Tarea 1. Crear el Proyecto TwoActivities
- Tarea 2. Crear e iniciar la segunda actividad.................................................................................
- Tarea 3. Enviar datos desde la actividad principal a la segunda actividad
- Tarea 4. Devolviendo datos a la main activity...............................................................................
- Resumen
- Capítulo 4:
- 4.1 Ciclo de vida de un Activity y el Instant State
- Tarea 1. Agregar Métodos Callbacks del Ciclo de Vida al Proyecto TwoActivities
- Tarea 2. Guardar y restaurar el estado de instancia (instance state) de la actividad
- Resumen
- 4.2 Iniciar Activities con Intents Implícitos......................................................................................
- Resumen de la aplicación
- Tarea 1. Crear el nuevo proyecto y su layout..............................................................................
- Tarea 2. Implementando el “open website”
- Tarea 3. Implementando “open location”
- Tarea 4. Implementando Share This Text
- Tarea 5. Recibir intents implícitos
- Resumen
- Capítulo 5:
- Interacción con el Usuario
- 5.1 Uso de teclados, controles de entrada, alertas y selectores
- Tarea 1. Experimentar con los atributos de un teclado de ingreso de texto
- Tarea 2. Cambiar el tipo de teclado
- Tarea 3. Agregar un control de entrada spinner para seleccionar una etiqueta de teléfono
- Tarea 4. Usar un dialogo para una alerta que requiere de alguna decisión
- Tarea 5. Usar un picker como entrada de usuario
- Tarea 6: Usando vistas de imágenes como botones
- Tarea 7: Usando radio buttons (botones de selección)
- Resumen
- 5.2 Usar un menú de opciones........................................................................................................
- Tarea 1. Agregar elementos al menú de opciones......................................................................
- Tarea 2. Agregar iconos para los elementos del menú
- Tarea 3. Manejar el elemento seleccionado del menú
- Resumen
- 5.3 Usando la Barra de Aplicaciones y las Pestañas para Navegación
- Resumen de la aplicación
- Tarea 1. Agregar un button Up para navegación ancestral
- Tarea 2. Usar la navegación por pestañas con vistas por deslizamiento
- Resumen
- 5.4 Crear un Recycler View
- Resumen de la aplicación
- Tarea 1. Crear y configurar un Proyecto nuevo
- Tarea 2. Crear un dataset
- Tarea 3. Crear un RecyclerView
- Tarea 4. Hacer la lista interactiva
- Tarea 5. Agregar un FAB para insertar elementos
- Resumen
- Capítulo 6:
- Trabajando en el Background
- 1 Crear un AsyncTask
- Resumen de la aplicación
- Tarea 1. Configurar el proyecto SimpleAsyncTask
- Tarea 2. Crear la subclase de AsyncTask
- Tarea 3. Implementar los pasos finales.......................................................................................
- Resumen
- 6.2 Conectarse a la Internet con AsynTask y AsyncTaskLoader
- Resumen de la aplicación
- Tarea 1. Explorar el API de Libros................................................................................................
- Tarea 2. Crear la aplicación "Who Wrote It?"
- Resumen
- 6.3 Broadcast Receivers
- Resumen de la Aplicación
- Tarea 1. Configurar el proyecto PowerReceiver
- Tarea 2. Enviar y recibir un Broadcast personalizado
- Resumen
- 6.4 Notifications
- Resumen de la aplicación
- Tarea 1. Crear una notificación básica
- Tarea 2. Actualizar y cancelar la notificación
- Tarea 3. Agregar acciones de notificación
- Resumen
- 6.5 Gestor de Alarmas (Alarm Manager)
- Resumen de la aplicación
- Tarea 1. Configure el proyecto Stand Up! y las vistas
- Tarea 2. Configurar la notificación
- Tarea 3. Crear la repetición de la alarma
- Resumen
- 6.6: Job Scheduler
- Resumen de la Aplicación
- Tarea 1. Implementar un JobService...........................................................................................
- Tarea 2. Implementar las condiciones del job
- Resumen
- Capitulo
- Manejando Datos
- 7.1 Shared Preferences (Preferencias compartidas)
- Resumen de la aplicación
- Tarea 1. Explorar la aplicación HelloSharedPrefs
- Tarea 2. Guardar y restaurar los datos en un archivo shared preferences
- Resumen
- 2 Agregando Settings a una Aplicación
- Resumen de la aplicación
- Tarea 1: Agregar un switch de ajuste para una aplicación
- Task 2: Usando la plantilla Settings Activity
- Resumen
- 7.3 Base de Datos SQLite...........................................................................................................
- Introducción a SQL
- SQLite Database
- Resumen de la Aplicación
- Tarea 0. Descargar y correr el código de arranque
- Tarea 1. Extender la SQLiteOpenHelper para crear y popular la base de datos
- Tarea 2. Creae el modelo de datos para una simple palabra......................................................
- Tarea 3. Implementar el método query() en WordListOpenHelper
- Tarea 4. Mostrar los datos en el RecyclerView
- Tarea 5. Agregar nuevas palabaras a la base de datos
- Tarea 6. Elimine palabras de la base de datos
- Tarea 7. Actualizar palabras en la base de datos
- Resumen
- 7.4 Búsqueda de Datos en una Base de Datos SQLite
- Resumen de la Aplicación
- Tarea 0. Descargar y ejecutar el código base
- Tarea 1. Agregar la Búsqueda
- Resumen
- 7.5 Implementando un Content Provider Minimalista
- Resumen de la Applicación
- Tarea 1. Crear el proyecto MinimalistContentProvider
- Tarea 2. Crear una clase Contract, un URI y datos simulados.....................................................
- Tarea 3. Implementar la clase MiniContentProvider
- Tarea 4. Usar un ContentResolver para obtener los datos
- Resumen
- 7.6 Agregar un Content Provider a su Base de Datos
- Resumen de la aplicación
- Resumen de componentes de la aplicación
- Resumen de cambios
- Tarea 1. Descargar y ejecutar el código base
- Tarea 2. Añadir un clase Contract a la WordListSQLInteractive..................................................
- Tarea 3. Crear un Content Provider
- Tarea 4. Implementar los métodos del Content Provider
- Resumen
- 7.7 Compartiendo Contenido con Otras Aplicaciones
- Resumen de la Aplicación
- Tarea 1. Hacer que el content provider esté disponible para otras aplicaciones
- Resumen
- 7.8 Cargar y Mostrar Datos Obtenidos de un Content Provider
- Resumen de la Aplicación
- Tarea 1. Crear la aplicación base para el WordListLoader
- Tarea 2. MainActivity: Agregar un LoaderManager y LoaderCallbacks
- Tarea 3. WordListAdapter: Implementar setData(), getItemCount(), y onBindViewHolder()
- Resumen
- Apéndices:
- Copiar y renombrar un proyecto.....................................................................................................
- Copiar el proyecto
- Renombrar y refactorizar los componentes del proyecto
- Actualizar los archivos build.gradle y AndroidManifest.xml
- Bibliografía
Ejercicios Android (UCAB)
Introducción
El presente trabajo constituye la guía de estudios básica que será usada en el semestre para la materia “Desarrollo en Ambiente Android” para estudiantes de Ing de Telecomunicaciones y de Ing Informática de la Universidad Católica Andrés Bello.
Está pensado para que el estudiante pueda ir adquiriendo de forma progresiva los conocimientos básicos que le permitirán contar con las herramientas para el desarrollo de aplicaciones en esta plataforma. Aunque los ejercicios se plantean de la forma más sencilla posible es necesario que el estudiante conozca previamente los conceptos básicos del lenguaje Java, específicamente en lo relacionado con la Programación Orientada a Objetos. De requerir algún refuerzo de conocimientos se recomienda ver la serie de videos del canal Youtube de Mitocode.
El objetivo fundamental de este trabajo es complementar la parte teórica que se imparte en clase y el estudiante, por medio de la práctica, pueda afianzar el conocimiento recibido. A pesar de que son ejemplos sencillos están pensados para que el estudiante que desee profundizar en esta plataforma cuente con los elementos necesarios para que lo haga por cuenta propia.
Por ser la plataforma Android un ecosistema en constante evolución, esta guía se irá adaptando con el tiempo a medida que surgan cambios importantes en la plataforma. Es así que para el momento de redacción del presente documento Google ya había anunciado que se usará oficialmente Kotlin como el lenguaje oficial de desarrollo de en la plataforma Android, por lo que en revisiones futuras de esta guía de seguro se presentarán los ejercicios en ese lenguaje.
La herramienta de desarrollo a utilizar será el Android Studio y se le sugiere al alumno que previamente lo tenga instalado además del JDK de Java necesario para su funcionamiento. En la web encontrará mucha información sobre la instalación de ambas herramientas. Para Java puede consultar la página de descarga oficial de Java, mientras que para el Android Studio lo puede hace de la página de desarrolladores de Android.
Bienvenido al mundo de programación Android y ¡feliz codificación!
Verás dos archivos con este nombre: uno para el proyecto y otro para el módulo de la “app”. Cada módulo tiene su propio archivo build.gradle, pero este proyecto por el momento tiene un solo módulo. Trabajarás principalmente con el archivo build.gradle del módulo para configurar la forma en que las herramientas de Gradle compilan y crean tu app. Para obtener más información sobre este archivo, visita Configurar tu compilación.
Tarea 2. Ejecutar la aplicación
Realizar la ejecución en un dispositivo real: Configura tu dispositivo de la siguiente manera:
- Conecta tu dispositivo a tu máquina de desarrollo con un cable USB. Si realizas desarrollos en Windows, es posible que debas instalar el controlador USB adecuado para tu dispositivo.
- Habilita USB debugging en Developer options de la siguiente manera. Primero, debes habilitar las opciones para programador:
- Abre la app Settings.
- (Solo en Android 8.0 o versiones posteriores) Selecciona System.
- Desplázate hasta abajo y selecciona About phone.
- Desplázate hasta abajo y presiona Build number siete veces.
- Cuando regreses a la pantalla anterior, verás Opciones para programador cerca de la parte inferior. Abre Developer options y desplázate hacia abajo hasta encontrar y habilitar USB debugging. Ejecuta la app en tu dispositivo de la siguiente manera:
- En Android Studio, haz clic en el módulo app de la ventana Project y selecciona Run > Run (o haz clic en Run en la barra de herramientas).
- En la ventana Select Deployment Target , selecciona tu dispositivo y haz clic en OK.
Realizar la ejecución en un emulador Ejecuta la app en un emulador de la siguiente manera:
- En Android Studio, haz clic en el módulo app de la ventana Project y selecciona Run > Run (o haz clic en Run en la barra de herramientas).
- En la ventana Select Deployment Target , haz clic en Create New Virtual Device.
- En la pantalla Select Hardware , selecciona un teléfono, como Pixel, y haz clic en Next.
- En la pantalla System Image , selecciona la versión con el nivel de API más alto. Si no tienes instalada esa versión, se mostrará un vínculo Download en el que debes hacer clic para completar la descarga.
- Haz clic en Next.
- En la pantalla Android Virtual Device (AVD) , deja los ajustes tal como están y haz clic en Finish.
- En el diálogo Select Deployment Target , selecciona el dispositivo que acabas de crear y haz clic en OK. Android Studio instala la app en el emulador y la ejecuta.
Tarea 3. Creación de una interfaz de usuario sencilla
Abrir el editor de diseño Para comenzar, configura tu lugar de trabajo de la siguiente manera:
- En la ventana Project de Android Studio, abre app > res > layout > activity_main.xml.
- Para hacer más espacio para el editor de diseño, oculta la ventana Project seleccionando View > Tool Windows > Project (o haciendo clic en Project en el lado izquierdo de Android Studio).
- Si en tu editor se muestra el código fuente XML, haz clic en la pestaña Design en la parte inferior de la ventana.
- Haz clic en Select Design Surface y selecciona Blueprint.
- Haz clic en Show en la barra de herramientas y asegúrate de que Show Constraints esté seleccionado.
- Asegúrate de que Autoconnect esté desactivada. En la información sobre la herramienta de la barra de herramientas debe aparecer la opción Turn On Autoconnect (ya que ahora está desactivada).
- Haz clic en Default Margins en la barra de herramientas y selecciona 16 (puedes ajustar el margen para cada vista posteriormente).
- Haz clic en Device in Editor en la barra de herramientas y selecciona Pixel XL.
Agregar un cuadro de texto
- Primero debes quitar lo que ya está en el diseño. Para eso, haz clic en TextView en la ventana Component Tree y luego presiona Suprimir.
- Desde la ventana Palette , a la izquierda, haz clic en Text en el subpanel izquierdo y luego arrastra Plain Text hacia el editor de diseño y suéltalo cerca de la parte superior del diseño. Este es un widget EditText que acepta entradas de texto sin formato.
- Haz clic en la vista del editor de diseño. Ahora podrás ver los controladores para cambiar el tamaño en cada esquina (cuadrados) y los anclajes de restricción en cada lado (círculos).
Ahora podrás configurar estas strings para cada vista. Para eso, regresa al archivo de diseño haciendo clic en activity_main.xml en la barra de pestañas y agrega las strings de la siguiente manera:
- Haz clic en el cuadro de texto del diseño y, si la ventana Attributes no está visible a la derecha, haz clic en Attributes en la barra lateral derecha.
- Ubica la propiedad text (actualmente fijada en "Name") y borra el valor.
- Ubica la propiedad hint y haz clic en Pick a Resource a la derecha del cuadro de texto. Dentro del diálogo que se muestra, haz doble clic en edit_message en la lista.
- Ahora haz clic en el botón en el diseño, ubica la propiedad text , haz clic en Pick a Resource y selecciona button_send.
Hacer que el tamaño del cuadro de texto sea flexible Antes de continuar, haz clic en Show en la barra de herramientas y selecciona Blueprint.
- Selecciona ambas vistas (haz clic con el botón primario en una, mantén presionado Shift y haz clic con el mismo botón en la otra) y luego haz clic con el botón secundario en cualquiera de las vistas y selecciona Chain > Create Horizontal Chain. Una cadena es una restricción bidireccional entre dos o más vistas que te permite organizar las vistas encadenadas de forma simultánea.
- Selecciona el botón y abre la ventana Attributes. Usando el inspector de vistas de la parte superior de la ventana Attributes , fija el margen derecho en 16.
- Ahora, haz clic en el cuadro de texto para ver sus atributos. Haz clic dos veces en el indicador de ancho para fijarlo en Match Constraints , “Match constraints” significa que el ancho se expande para cumplir con la definición de las limitaciones horizontales y los márgenes. Por lo tanto, el cuadro de texto se estirará para llenar el espacio horizontal (luego de considerar el botón y todos los márgenes).
Ejecutar la app Si tu app ya está instalada en el dispositivo de la lección anterior , simplemente haz clic en Apply Changes en la barra de herramientas para actualizar la app con el nuevo diseño. También puedes hacer clic en Run para instalar y ejecutar la app.
Tarea 4. Iniciar otra activity
Después de completar la lección anterior, tendrás una app que mostrará una activity (una única pantalla) con un campo de texto y un botón. En esta lección, agregarás a MainActivity un fragmento de código que iniciará una nueva activity para mostrar el mensaje cuando el usuario toque Send.
Responder al botón Send
- En el archivo app > java > com.example.myfirstapp > MainActivity.java , agrega el código auxiliar del método sendMessage() como se muestra a continuación:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } / Called when the user taps the Send button / public void sendMessage(View view) { // Do something in response to button }* } Es posible que veas un error, ya que Android Studio no puede resolver la clase View que se usa como argumento del método. Por lo tanto, haz clic para posicionar tu cursor en la declaración View y luego realiza una corrección rápida presionando Alt + Enter (en Mac, Option
- Enter). (Si aparece un menú, selecciona Import class ).
- Regresa al archivo activity_main.xml para llamar a este método desde el botón:
- Haz clic para seleccionar el botón en el editor de diseño.
- En la ventana Attributes , encuentra la propiedad onClick y selecciona sendMessage [MainActivity] en la lista desplegable. Ahora, cuando se presione el botón, el sistema llamará al método sendMessage(). Toma nota de los detalles de este método que se requieren para que el sistema lo reconozca como compatible con el atributo android:onClick. En concreto, el método debe declarar lo siguiente: acceso público; un valor de retorno vacío; una View como único parámetro (es el objeto View en el que se hizo clic). Luego, completarás este método para leer el contenido del campo de texto y proporcionar dicho texto a otra activity.
Crear una intent Un Intent es un objeto que proporciona enlace en tiempo de ejecución entre componentes separados, como dos activity. El Intent representa la “intención de hacer algo” de una app. Puedes usar las intents para varias tareas, pero en esta lección el intent inicia otra activity. En MainActivity.java, agrega la constante EXTRA_MESSAGE y el código sendMessage(), como se muestra a continuación:
Crear la segunda activity
- En la ventana Project , haz clic con el botón secundario en la carpeta app y selecciona New > Activity > Empty Activity.
- En la ventana Configure Activity , ingresa “DisplayMessageActivity” en Activity Name y haz clic en Finish (deja todas las demás propiedades en sus valores predeterminados). Android Studio realiza tres acciones automáticamente: Crea el archivo DisplayMessageActivity.java. Crea el archivo de diseño activity_display_message.xml correspondiente. Agrega el elemento obligatorio en AndroidManifest.xml. Si ejecutas la app y tocas el botón en la primera activity, la segunda se iniciará, pero estará vacía. Esto sucede porque la segunda activity usa el diseño vacío proporcionado por la plantilla.
Agregar una vista de texto La activity nueva incluye un archivo de diseño en blanco, por lo que ahora agregarás una vista de texto en la que aparecerá el mensaje.
- Abre el archivo app > res > layout > activity_display_message.xml.
- Haz clic en Turn On Autoconnect en la barra de herramientas (luego debe habilitarse, como se muestra en la figura 1).
- En la ventana Pallete , haz clic en Text y luego arrastra un TextView hacia el diseño; ubícalo cerca de la parte superior del diseño, en un punto cercano al centro para que se acople a la línea vertical que aparece. La opción “Autoconnect” agrega restricciones a la derecha y a la izquierda para ubicar la vista en el centro horizontal.
- Crea una restricción más desde la parte superior de la vista de texto hasta la parte superior del diseño. Como alternativa, puedes realizar algunas modificaciones en el estilo de texto expandiendo textAppearance en la ventana Attributes y cambiar atributos como textSize y textColor.
Mostrar el mensaje A continuación, modificarás la segunda activity para que muestre el mensaje que pasó la primera.
- En DisplayMessageActivity.java, agrega el siguiente código al método onCreate():
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message); // Get the Intent that started this activity and extract the string
Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); // Capture the layout's TextView and set the string as its text TextView textView = findViewById(R.id.textView); textView.setText(message); }
- Presiona Alt + Enter (en Mac, Option + Return) para importar las clases faltantes. Tus importaciones deben tener el siguiente aspecto final:
import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView;
Agregar navegación superior En cada pantalla de tu app que no sea la entrada principal (todas las pantallas que no sean la de inicio) se debe proporcionar navegación. De esta forma, el usuario puede regresar a la pantalla primaria lógica en la jerarquía de la app presionando el botón Up en la barra de la app. Lo único que debes hacer es declarar la activity primaria lógica en el archivo AndroidManifest.xml. Para ello, abre el archivo en app > manifests > AndroidManifest.xml , ubica la etiqueta para DisplayMessageActivity y reemplázala por lo siguiente:
El sistema de Android agregará automáticamente el botón Up en la barra de la app.
Ejecutar la app Ahora ejecuta nuevamente la app haciendo clic en Apply Changes en la barra de herramientas. Cuando se abra, escribe un mensaje en el campo de texto y toca Send para que el mensaje aparezca en la segunda activity.
Capítulo 2:
2.1 Vistas, ViewGroups, Layouts.
HelloToast.
La aplicación "Hello Toast" constará de dos botones y una vista de texto. Cuando hace clic en el primer botón, se mostrará un mensaje corto o toast en la pantalla. Al hacer clic en el segundo botón aumentará un contador de clics; el recuento total de clics del mouse se mostrará en la vista de texto.
Así es como se verá la aplicación finalizada:
Tarea 1. Creación del proyecto
Inicie Android Studio y cree un nuevo proyecto con los siguientes parámetros: Atributo Valor Application Name Hello Toast Company Name com.example.android
Phone and Tablet Minimum SDK API15: Android 4.0.3 IceCreamSandwich Template Empty Activity Generate Layout file box Seleccionado Backwards Compatibility box Seleccionado
Seleccione Run > Run app o haga clic en el icono Run en la barra de herramientas para compilar y ejecutar la aplicación en el emulador o su dispositivo.
Tarea 2: Agreguar vistas a "Hello Toast" en el Editor de diseño
En esta tarea, creará y configurará una interfaz de usuario para la aplicación "Hello Toast" organizando los componentes de la interfaz de usuario de la vista en la pantalla.
¿Por qué? : cada aplicación debe comenzar con la experiencia del usuario, incluso si la implementación inicial es muy básica.
Las Views utilizadas para Hello Toast son:
TextView : una vista que muestra texto. Button : un botón con una etiqueta que generalmente se asocia con un manejador de clics. LinearLayout : una vista que actúa como un contenedor para organizar otra vista. Este tipo de vista extiende la clase ViewGroup y también se llama grupo de vista. LinearLayout es un grupo de vista básico que organiza su colección de vistas en una fila horizontal o vertical.
Aquí hay un bosquejo de la UI que construirá en este ejercicio. Los bocetos de IU simples pueden ser muy útiles para decidir qué vistas usar y cómo organizarlas, especialmente cuando los diseños se vuelven más sofisticados.