Tema 4.8 Preferencias

Post on 20-May-2015

325 views 0 download

Transcript of Tema 4.8 Preferencias

Análisis y Diseño de Software

Departamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.es

Preferencias

Carlos A. Iglesias <cif@gsi.dit.upm.es>

v1.0 22/04/2013

Preferencias 2

Temario● 4.1 Introducción a Android ● 4.2 Introducción Desarrollo con Android

● 4.3 Ejemplo Desarrollo y Depuración ● 4.4 Actividades● 4.5 Interfaces de Usuario

● 4.6 Intenciones● 4.7 Acceso a Datos● 4.8 Preferencias● 4.9 Hebras e internacionalización

Preferencias 3

Teoría

Ejercicio práctico en el ordenador

Ampliación de conocimientos

Lectura / Vídeo / Podcast

Práctica libre / Experimentación

Leyenda

Preferencias 4

● Android Developers

Bibliografía

http://developer.android.com/training/basics/data-storage/shared-preferences.htmlhttp://developer.android.com/guide/topics/data/data-storage.html#pref

http://developer.android.com/guide/topics/ui/settings.html

Preferencias 5

Objetivos

● Aprender a hacer aplicaciones que tienen configuración de los usuarios

● Aprender el uso de preferencias

Preferencias 6

Motivación

● Es deseable que el usuario pueda modificar algunos valores de la aplicación

● P.ej.– Usuario / contraseña– Color de la pantalla, estilo– Funcionamiento (orden en que se muestra, ...)

Preferencias 7

Persistencia en Android

● Android nos ofrece varias alternativas de almacenamiento persistente:– Bases de datos – Pares atributos valor (preferencias) (este tema)– Sistema de ficheros (interno o externo en SD)– Conexión de red para almacenar datos de

forma remota

Preferencias 8

Almacenamiento de datos

● En Android, todos los datos de la aplicación (incluyendo ficheros) son PRIVADOS para esa aplicación

● La forma estándar de acceder a los datos son los ContentProvider, de los cuales hay componentes estándar para acceder a ficheros multimedia, contactos, etc.

Preferencias 9

Preferencias

● Las preferencias son un mecanismo ligero para guardar pares clave-valor de tipos primitivos en Mapas

● La clave es un String y el valor un tipo primitivo

● Las preferencias son similares a los Bundles que usábamos en las Intenciones, pero las preferencias son persistentes

Preferencias 10

API de Preferencias

● Obtener objeto SharedPreferences – getSharedPreferences() - si tenemos múltiples

ficheros de preferencias, debemos indicar el nombre del fichero

– getPreferences() - si sólo tenemos 1 fichero de preferencias

Preferencias 11

Leer Preferencias

● En el objeto SharedPreferences, usar– getBoolean()– getString()– getInt()– getFloat()– getLong()

Preferencias 12

Escribir Preferencias

● Tenemos dos opciones– Usar una Actividad que extiende

PreferenceActivity (y guarda ella ya los valores)– Guardarlo a mano

• Obtener un objeto SharedPreferences.Editor con el método edit()

• Escribir en el objeto Editor– putBoolean, putString(), putFloat(), putInt(), putLong– remove(String key)– clear() (borrar todas las claves)

• Persistir cambios en Editor con commit()

Preferencias 13

Mostrar Preferencias

● Debemos crear una Actividad que extiende PreferenceActivity

● El fichero XML de preferencias debe ser un PreferenceScreen. Dentro indicamos el tipo de preferencias– CheckBoxPreference– ListPreference– EditTextPreference

Preferencias 14

Ejemplo EjemploPreferencias

Preferencias 15

EjemploPreferencias

Preferencias 16

EjemploPreferencias

Preferencias 17

Recurso mis_preferencias.xml

● Proyecto o fichero New->Android XML File

Preferencias 18

Preferencias

Nombre variable

Texto para el usuario

Ayuda para que lo rellene

Preferencias 19

Vista xml

Preferencias 20

Lista de valores

● En res/values y usando string-array

Preferencias 21

PreferenciasActivity

● Crea el menú de preferencias, lo rellena a partir de los valores guardados y lo almacena cuando damos atrás

Preferencias 22

MainActivity (I)

Preferencias 23

MainActivity (II)

Preferencias 24

MainActivity (III)

Preferencias 25

MainActivity (IV)

Preferencias 26

MainActivity (V)

Preferencias 27

Resumen

● Las preferencias de Android son un ejemplo de Diccionario para guardar pares clave-valor

● Las preferencias permiten guardar tipos primitivos

● Podemos gestionar preferencias con PreferenceActivity

Preferencias 28

¿Preguntas?