¿Cómo Crear Una Actividad De Preferencias En Android?

Tutorial Para Crear Una Actividad De Preferencias En Android
Las preferencias de una aplicación Android permiten que los usuarios configuren opciones del funcionamiento básico, como la frecuencia de sincronización, los estilos, datos de cuentas, uso de notificaciones, etc.

Para explicar la inclusión de preferencias en una aplicación android he decidido crear un tutorial que te sirva de guía para generar una buena actividad que se dedique a esta tarea a través de un ejemplo ilustrativo. La siguiente imagen muestra el resultado final.



Descarga el código desde ya para comprender a la par los pasos que seguiremos:

Descargar Código

Desbloquea el código con una de las siguientes acciones sociales

Tweet

La Actividad De Ajustes En Android

La actividad de ajustes es una parte fundamental para las aplicaciones Android. Uno de los principios de diseño más importante del diseño Android establece que el usuario debe sentir que tiene el control de la aplicación y que puede darle toques personalizados.

Android Lollipop Settings
Ajustes De La Aplicación De Llamadas En Android Lollipop
Cuando un usuario modifica un ajuste, este cambio se conserva como una Preferencia (un par clave -valor) hasta que decida cambiarlo de nuevo. Por lo que no debe preocuparse por configurar la aplicación en cada movimiento dentro de ella.

¿Dónde Se ubica La Sección De Ajustes?

Por convención siempre han estado ubicados en el action overflow de la Action Bar. Si has notado, Android Studio cuando genera una nueva actividad, crea un ítem de menú llamado Settings para ubicar los ajustes.

Ajustes De Una Aplicación Android En La Action Bar
Este jamás debe aparecer visible en la action bar, por eso tiene la característica never en su visualización. Además debe ser la última prioridad en el action overflow y es por eso que tiene su atributo ordenInCategory en 1oo.

No obstante, si deseas incluir una sección de ayuda para tu app, por convención Ajustes será la antepenúltima opción y Ayuda la última.

Incluso es viable incluir los ajustes en el patrón Navigation Drawer.

Ajustes De Una Aplicación Android En Navigation Drawer
Tipos De Preferencias En Android

Cada uno de los ajustes se representa lógicamente con un objeto de la clase Preference, la cual representa un ítem de la lista de preferencias.

Obviamente esta clase no se implementa directamente para generar preferencias de distintos estilos visuales y con diferentes valores. Existen subclases escritas para que podamos acceder a patrones de diseño en forma de checkbox, listas, edit text, etc. También podemos crear nuestro propio diseño de preferencias.

Veamos tres tipos de preferencias vitales:

CheckBoxPreference: Muestra un checkbox para proporcionarle al usuario dos opciones disponibles de acción.

ListPreference: Despliega un dialogo con varias opciones para elegir como preferencia.
ListPreference En Android

EditTextPreference: A través de un diálogo toma el valor que el usuario digite en un campo de texto.


Cada preferencia maneja un esquema con pares clave-valor para definir las decisiones del usuario. La persistencia de esta información se da a través de un archivo llamado Shared Preferences.

Si deseamos acceder a este archivo debemos usar la clase SharedPreferences para obtener una vía de comunicación hacia cada par clave-valor almacenado.

SharedPreferences puede guardar cualquier de los siguientes tipos de datos para los valores de las preferencias:

Booleanos
Entero
Flotante
Long
String
Conjuntos Set de la clase String (Set<String>)
Compatibilidad En Versiones De Android

Antes de implementar las preferencias para tus ajustes debes pensar hasta donde deseas mantener la compatibilidad de esta característica.

Para ello tienes dos opciones: o utilizar la clase PreferenceActivity para APIs de la 10 hacia abajo o emplear un enfoque de fragmentos con la clase PreferenceFragment para mayores o iguales a la 11. Por lo que esta cuestión ya depende de ti.

Existe un caso específico donde PreferenceActivity puede usarse en versiones superiores y es cuando deseamos implementar un patrón maestro-detalle. Lo cual veremos mas adelante del articulo

1.Requerimientos De La Aplicación Android

¿Recuerdas la aplicación RevistaTempor del artículo sobre el SwipeRefreshLayout? Esta aplicación cargaba una lista ficticia de artículos de un sitio web y cada vez que usábamos un gesto Swipe vertical actualizaba la información.

Lo que haremos ahora es extender su comportamiento para que el usuario pueda cambiar las siguientes configuraciones:

Como usuario, deseo que sea opcional la visualización de las miniaturas en cada artículo de la lista.
Como usuario, deseo limitar la cantidad de artículos que aparecerán en la lista.
Como usuario, deseo sincronizar mi cuenta de Twitter con la aplicación.

Antes de continuar validaremos si cada una de estas posibles configuraciones puede ser una preferencia. Con este fin en mente acudiremos a una interesante plantilla que ha creado Google en lo documentación. Podemos verla en la siguiente ilustración:

Flujograma Para Identificar Ajustes
Básicamente lo que sugiere este diagrama es que algún aspecto se convierte un ajuste si:

El usuario no lo modifica con frecuencia
No se trata de información estática que podría ubicarse en la sección de ayuda.
Satisface a la mayoría de usuarios pero puede afectar a la minoría. Esto indica que existen distintas necesidades para otros usuarios, por lo que debes dejar que cada quien elija.Hagamos la prueba con el segundo requerimiento:

¿El usuario lo modifica con frecuencia?
R/ No, es eventual.


¿Es información estática?
R/ No, es una decisión.


¿Afecta a la minoría?
R/ Si, habrá usuarios que no deseen ver miniaturas.


Si reflexionas aplicando esta misma lógica a los demás requerimientos, verás que también son potenciales ajustes.

2.Wireframing De La Aplicación Android

Una vez teniendo claro lo que vamos a implementar, entonces podemos bocetar como luciría el comportamiento de la aplicación incluyendo los ajustes:

Wireframing De Aplicación Android
Para el primer ajuste usaremos una preferencia estilo checkbox para decidir entre la aparición de las miniaturas o no al frente de cada ítem de la lista.

La cantidad máxima de ítems podemos representarla a través de una preferencia estilo lista para determinar 4 valores fijos: seis, ocho, doce y dieciséis respectivamente.

Ten en cuenta que es mejor predeterminar el límite de los valores para evitar que el usuario reduzca el rendimiento de inflado y búsqueda en la lista con valores muy altos.

El ajuste de la cuenta de twitter debemos incluirlo en otro grupo ya que necesitamos el usuario y  la contraseña como dos preferencias separadas. Ambas deben ser con estilo EditText para permitir al usuario digitar su información personalizada.

No crearemos un servicio para la conexión a la interfaz de Twitter, estas preferencias son educativas.

3. Diseño De La Aplicación Android

El diseño de las preferencias se realiza a través del enfoque de inflado de una definición XML al igual que con los layouts, ya que estamos poblando implícitamente un ListView.

Las tareas a realizar para diseñar nuestra sección de Ajustes son las siguientes:

Crear un archivo XML para las preferencias.
Añadir cada preferencia identificada en los requerimientos.
Crear un archivo de strings únicamente para los textos de las preferencias y sus valores.
Agrupar ajustes si se requiere (8 o más requieren agrupación).

Crear Un Archivo XML Para Las Preferencias

Crea una nueva carpeta de recursos xml en Android Studio haciendo click derecho en la carpeta res y luego seleccionando Android resource directory.

Crear Nuevo Directorio De Recursos En Android Studio
Esto invocará el wizard de creación de directorios de recursos. Solo debes seleccionar el valor xml en la opción Resource Type y confirmar con el botón OK.

Directorio Xml En Android Studio
Ahora ve a la nueva carpeta xml, presiona click derecho, selecciona la opción New y ve a XML resource file.

Crear Recurso Xml en Android Studio
En el primer campo File Name escribe el nombre de tu archivo de preferencias. Puedes usar el nombre que quieras. Yo usaré el nombre settings.xml.

Asistente De Android Studio Para Crear Recurso Xml
Si todo salió bien, verás que tu archivo tiene un nodo raíz del tipo <PreferenceScreen>.

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

La etiqueta <PreferenceScreen> representa la lista de preferencias que será inflada en la actividad de ajustes.

Añadir Preferencias Al Archivo settings.xml

Ahora agregaremos la etiqueta correspondiente a cada uno de las preferencias identificadas en un orden establecido.

Cada preferencia es representada por una etiqueta equivalente a su clase java original. Por ejemplo <CheckBoxPreference>, <ListPreference> y <EditTextPreference>.

La primera preferencia es la activación/desactivación de las miniaturas. Para ello usamos la etiqueta <CheckBoxPreference> de la siguiente manera:

<!-- Visibilidad de Miniaturas de las Entradas -->
<CheckBoxPreference
android:key="miniaturas"
android:title="@string/pref_miniaturas"
android:defaultValue="true" />

Ahora mira el significado de los atributos mas comunes para las preferencias:

key: Representa la clave de la preferencia que se usará en el almacenamiento dentro del archivo Shared Preferences.
title: Es la cadena que verá el usuario en la aplicación como título principal.
summary: Aquí puedes escribir un resumen sobre el estado de la preferencia.
defaultValue: Es el valor por defecto que tendrá la preferencia cuando se inicie por primera vez la aplicación o en caso de que se requiera un reinicio. Como ves, asigné true como valor predeterminado para que se muestren las miniaturas al inicio.
Estos atributos son comunes para todas las preferencias. Sin embargo existen atributos que son propios de cada estilo dependiendo de su estilo.

Veamos como declarar la preferencia de la cantidad máxima de elementos de la lista a través de la etiqueta <ListPreference>:

<!-- Cantidad máxima de entradas -->
<ListPreference
android:key="numArticulos"
android:title="@string/pref_numArticulos_titulo"
android:defaultValue="6"
android:entries="@array/pref_numArticulos_entradas"
android:entryValues="@array/pref_numArticulos_valores"
android:summary="@string/pref_numArticulos_resumen" />

Esta vez tenemos atributos especiales para una preferencia con estilo de lista:

entries: Representa cada uno de los nombres que verá el usuario para las opciones.
entryValues: Valores para cada opción contenida en entries.
ListPreference En Ajustes De Una Aplicación Android
Ahora veamos como declarar la preferencia para establecer el password y el usuario de twitter:

<!-- Usuario de Twitter -->
<EditTextPreference
android:key="usuario_twitter"
android:title="@string/pref_usuario_titulo"
android:summary="@string/pref_usuario_resumen"
android:selectAllOnFocus="true"
android:singleLine="true" />
<!-- Password de Twitter -->
<EditTextPreference
android:key="contraseña_twitter"
android:title="@string/pref_contraseña_titulo"
android:summary="@string/pref_contraseña_resumen"
android:selectAllOnFocus="true"
android:inputType="textWebPassword"
android:singleLine="true" />

Cada <EditTextPreference> puede poseer los siguientes atributos especiales:

selectAllOnFocus: Muestra seleccionado todo el texto en el edit text al iniciar el diálogo.
inputType: Controla el comportamiento del teclado dependiendo de la bandera usada. Para enmascarar con asteriscos los caracteres de la contraseña puedes usar textWebPassword.
singleLine: Establece que si el EditText debe aceptar una sola línea de texto (true). Adicionalmente dirige el foco hacia los botones de acción por si presionas el botón de confirmación en el teclado.
EditTextPreference En Ajustes De Una Aplicación Android
Crear Archivo De Strings Para Las Preferencias

La definición XML de todas las preferencias vistas en la tarea anterior se basan en ítems de un archivo de strings.xml que aún no hemos visto cómo se constituye.

Separar este archivo de los strings corrientes nos permitirá tener una legibilidad mucho más comprensiva de la jerarquía de preferencias.

A continuación ve a tu carpeta values, presiona click derecho, ve a la opción New > Values resource file. Pon el nombre de strings_settings.xml y define cada una de las cadenas necesarias para títulos, resumen, valores, etc.

Veamos cómo queda el archivo de RevistaTempor:

<resources>
<!-- Nombre Actividad Ajustes-->
<string name="title_activity_settings">Configuración</string>
<!-- Titulos de Grupos-->
<string name="pref_gen">General</string>
<string name="pref_twitter">Twitter</string>
<!-- GENERALES -->
<!-- Preferencia Miniaturas -->
<string name="pref_miniaturas">Mostrar Miniaturas</string>
<!-- Preferencia Número de Articulos -->
<string name="pref_numArticulos_titulo">Número de Artículos</string>
<string-array name="pref_numArticulos_entradas">
<item>6</item>
<item>8</item>
<item>12</item>
<item>16</item>
</string-array>
<string-array name="pref_numArticulos_valores">
<item>6</item>
<item>8</item>
<item>12</item>
<item>16</item>
</string-array>
<string name="pref_numArticulos_resumen">Número máximo de artículos en la lista</string>
<!-- Preferencias Cuenta Twitter -->
<string name="pref_usuario_titulo">Usuario</string>
<string name="pref_usuario_resumen">Tu nombre de usuario en Twitter</string>
<string name="pref_contraseña_titulo">Contraseña</string>
<string name="pref_contraseña_resumen">Tu Contraseña de Twitter</string>
</resources>

Agrupar Ajustes Por títulos O Subscreens

En el momento que la cantidad de ajustes sea  mayor  a 7 elementos debes considerar agruparlas.

Una de las formas de agrupación es a través de separadores de sección, los cuales se componen de un título más una línea divisoria que representa una categoría. Es ideal para agrupar entre 8 y 15 elementos. Por ejemplo la siguiente imagen muestra tres categorías en la sección de ajustes:

Categorías En Los Ajustes De La Aplicación Teléfono En Android
Otro método es el uso de subscreens(será el método que usaremos para el resultado final), el cual es muy útil para simplificar un número mayor a 16 ajustes. Se trata de incluir una nueva actividad por cada grupo que exista en los ajustes. En la siguiente imagen vemos como del grupo Date & Time se desprende una nueva pantalla para ver los ajustes interiores:

Subscreens En Los Ajustes De Android
Aunque nuestro ejemplo solo tiene 4 ajustes, usaremos la agrupación por cada método para que puedas implementarla en tus futuros proyectos.

Para ello crearemos dos grupos, uno para las características generales y otro para los datos de la cuenta de twitter.

IMPLEMENTAR DIVISORES DE SECCIÓN

La implementación de divisores de sección se realiza a través de la etiqueta <PreferenceCategory>. Esta representa una categoría contenedora de preferencias, donde solo debemos incluir como elementos hijos todas las preferencias que pertenezcan a ella.

Categorías En Los Ajustes De Aplicación Android
Las categorías necesitan que declaremos un atributo title para el título de la sección y un atributo key para almacenamiento en el archivo SharedPreferences.

Veamos cómo hacerlo:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- PREFERENCIAS GENERALES -->
<PreferenceCategory
android:key="pref_gen"
android:title="@string/pref_gen">
<!-- Visibilidad de Miniaturas de las Entradas -->
<CheckBoxPreference
android:key="miniaturas"
android:title="@string/pref_miniaturas"
android:defaultValue="true" />
<!-- Cantidad máxima de entradas -->
<ListPreference
android:key="numArticulos"
android:title="@string/pref_numArticulos_titulo"
android:defaultValue="6"
android:entries="@array/pref_numArticulos_entradas"
android:entryValues="@array/pref_numArticulos_valores"
android:summary="@string/pref_numArticulos_resumen" />
</PreferenceCategory>
<PreferenceCategory
android:key="pref_twitter"
android:title="@string/pref_twitter">
<!-- Usuario de Twitter -->
<EditTextPreference
android:key="usuario_twitter"
android:title="@string/pref_usuario_titulo"
android:summary="@string/pref_usuario_resumen"
android:selectAllOnFocus="true"
android:singleLine="true" />
<!-- Password de Twitter -->
<EditTextPreference
android:key="contraseña_twitter"
android:title="@string/pref_contraseña_titulo"
android:summary="@string/pref_contraseña_resumen"
android:selectAllOnFocus="true"
android:inputType="textWebPassword"
android:singleLine="true" />
</PreferenceCategory>
</PreferenceScreen>

IMPLEMENTAR SUBSCREENS

Para usar subscreens solo usamos etiquetas hijas <PreferenceScreen> dentro del elemento raíz. Con esta convención, se crearán automáticamente las actividades o fragmentos necesarios para navegar a los ajustes agrupados.

Subscreens En Los Ajustes De Una Aplicación Android
En ese caso solo reemplazamos las categorías por subscreens de la siguiente forma:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- PREFERENCIAS GENERALES -->
<PreferenceScreen
android:key="pref_gen"
android:title="@string/pref_gen">
<!-- Visibilidad de Miniaturas de las Entradas -->
<CheckBoxPreference
android:key="miniaturas"
android:title="@string/pref_miniaturas"
android:defaultValue="true" />
<!-- Cantidad máxima de entradas -->
<ListPreference
android:key="numArticulos"
android:title="@string/pref_numArticulos_titulo"
android:defaultValue="6"
android:entries="@array/pref_numArticulos_entradas"
android:entryValues="@array/pref_numArticulos_valores"
android:summary="@string/pref_numArticulos_resumen" />
</PreferenceScreen>
<PreferenceScreen
android:key="pref_twitter"
android:title="@string/pref_twitter">
<!-- Usuario de Twitter -->
<EditTextPreference
android:key="usuario_twitter"
android:title="@string/pref_usuario_titulo"
android:summary="@string/pref_usuario_resumen"
android:selectAllOnFocus="true"
android:singleLine="true" />
<!-- Password de Twitter -->
<EditTextPreference
android:key="contraseña_twitter"
android:title="@string/pref_contraseña_titulo"
android:summary="@string/pref_contraseña_resumen"
android:selectAllOnFocus="true"
android:inputType="textWebPassword"
android:singleLine="true" />
</PreferenceScreen>
</PreferenceScreen>

Para optimizar la creación de subscreens en versiones superiores a la versión 3.0 es recomendable usar otro tipo de agrupamiento llamado agrupamiento por encabezados. Lo verás en la otra sección.

3. Codificación De Las Preferencias En La Aplicación

Al inicio mencioné que las preferencias se implementan dependiendo de la versión de Android. Si deseas soportar dispositivos con Android 3.0 hacia abajo, entonces se usa una actividad especial para preferencias llamada PreferenceActivity.

Por otro lado,  si deseas soportar solo dispositivos de la versión 3.0 hacia arriba, entonces usas el patrón de fragmentos con la subclase PreferenceFragment. Esta clase no hace parte de la librería de soporte, así que no funcionará con versiones inferiores.

La causa por la que Google desea que los desarrolladores usen las preferencias con fragmentos, se debe a la versatilidad que proporcionan al agruparse las preferencias. Es mucho mejor que cada subscreen se genere por reemplazos de fragmentos que creando varias actividades por pantalla.

Además los fragmentos permiten crear patrones maestro-detalle en los dispositivos móviles con dimensiones largas como las tablets.

Crear Una Actividad De Preferencias En Android

Este no es el enfoque que deseo usar para mostrarte el resultado final de la aplicación RevistaTempor. Sin embargo me parece importante que aquellas personas que lo necesiten puedan tener acceso a un ejemplo.

Para crear la actividad solo debemos ir a nuestro paquete java, dar click derecho, seleccionar New y presionar Java Class. Puedes usar el nombre de SettingsActivity para el archivo.

Esta actividad debe heredar de PreferenceActivity y en vez de inflar su vista desde un layout con setContentView(), se infla con el método addPreferencesFromResource(). Veamos:

import android.preference.PreferenceActivity;
import android.os.Bundle;
public class SettingsActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}

Probablemente el método addPreferencesFromResource() aparecerá subrayado indicando que está obsoleto debido a la API que se está usando.

Ahora ve a tu actividad principal y sobrescribe el método onOptionsItemSelected() para que se inicie la actividad de ajustes cuando se presione el botón action_settings que se encuentra en tu archivo menú_main.xml(O el nombre que hayas usado).

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
startActivity(new Intent(this, SettingsActivity.class));
return true;
}
return super.onOptionsItemSelected(item);
}

Crear Un Fragmento De Preferencias

La creación de un fragmento de preferencias requiere que tengamos una actividad en la cual se añadirá su contenido. Por lo que debes crear una actividad de preferencias que extienda de ActionBarActivity o la clase Activity.

Esta actividad no requiere un layout para inflar su contenido, por ende tampoco implementa el método setContentView().

import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;

public class SettingsActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.add(android.R.id.content, new SettingsFragment());
        ft.commit();
    }
}

El fragmento se añade de forma normal pero se debe adjuntar al contenido principal de la aplicación refiriéndonos al identificador general android.R.id.content.

Lo que sigue es crear un nuevo fragmento que extienda de la clase PreferenceFragment. Lo llamaremos SettingsFragment y simplemente añadiremos el método addPreferencesFromResource() en onCreate() para la visualización. Debido a esto, no es necesario sobrescribir nada en el método onCreateView():

import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceFragment;

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class SettingsFragment extends PreferenceFragment {

    public SettingsFragment() {
        // Constructor Por Defecto
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPrefere
Fuente: este post proviene de Hermosa Programación, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Pincha aquí.
Creado:
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

Recomendamos

Relacionado

informática desarrollo android

¿Andas buscando como parsear un archivo RSS con formato XML, para incluir contenidos de un sitio web en tu aplicación Android? ¿Necesitas ideas para crear una app lectora de Rss como Feedly, Flipboard o Flyne? Pues bien, en este tutorial verás cómo alimentar una lista de elementos con las noticias del sitio web forbes.com desde su feed con formato RSS a través de las tecnologías Volley y Simple Fr ...

informática desarrollo android

Este artículo te explicará el uso del Navigation Drawer en Android para crear una navegación a través de un Menú deslizante. Verás como implementar un Drawer Layout para el diseño. Aprenderás a manejar los eventos relacionados. Y también a complementar su funcionamiento con la action bar mediante un Action Bar Drawer Toggle. CONTENIDO ¿Cómo crear un menú deslizante con un Navigation Drawer? Ejem ...

informática desarrollo android

Este artículo te explicará el uso del Navigation Drawer en Android para crear una navegación a través de un Menú deslizante. Verás como implementar un Drawer Layout para el diseño. Aprenderás a manejar los eventos relacionados. Y también a complementar su funcionamiento con la action bar mediante un Action Bar Drawer Toggle. CONTENIDO ¿Cómo crear un menú deslizante con un Navigation Drawer? Ejem ...

informática desarrollo android

El diseño visual de una aplicación Android es repesentado a través de reglas contenidas en Estilos y Temas. Estas herramientas permiten que los programadores y diseñadores generen una interfaz mas amigable y personalizada de sus apps, para establecer una identidad que impacte al usuario final. Por esta razón es necesario que entendamos como se construyen y asignan estilos a tus Views y Layouts. Si ...

informática desarrollo android

Los Spinners son menús desplegables en Android que permiten al usuario decidirse por una camino entre varias opciones. De seguro alguna vez habrás visto un formulario en una aplicación donde te pidan elegir tu ciudad de una lista o cuando te permiten cambiar la temporalidad de los resultados proyectados desde un menú en la Action Bar. Ambos casos son ejemplos de Spinners y espero que este tutoria ...

informática desarrollo android

IMG.displayed{display:block;margin-left:auto;margin-right:auto} En este articulo estudiaremos las características y el uso de la Action Bar (Barra de acción) en el desarrollo Android. Veremos su anatomía, como crear un archivo de diseño para ella, como ejecutar las acciones una vez presionado sus opciones y otras características relevantes. Indice: Funciones del Action Bar Anatomía de la Action ...

informática desarrollo android

Los Spinners son menús desplegables en Android que permiten al usuario decidirse por una camino entre varias opciones. De seguro alguna vez habrás visto un formulario en una aplicación donde te pidan elegir tu ciudad de una lista o cuando te permiten cambiar la temporalidad de los resultados proyectados desde un menú en la Action Bar. Ambos casos son ejemplos de Spinners y espero que este tutoria ...

informática android studio desarrollo android ...

¿Te has preguntado como iniciar una actividad desde otra actividad en Android? ó ¿Como iniciar una aplicación desde nuestras actividades?,si es así, este artículo te va a interesar mucho, ya que estudiaremos las entidades encargadas de comunicar los componentes de una aplicación con su entorno. Estos componentes a los que me refiero se le denominan Intents (intenciones, intentos). Si leíste el ar ...

informática desarrollo android

Las listas en Android son contenedores supremamente útiles para organizar información en forma vertical y con la capacidad de usar scrolling(desplazamiento) para simplificar su visualización. Esta técnica es muy popular en muchas aplicaciones, ya que permite mostrarle al usuario un conjunto de datos de forma practica y accesible. Si sigues leyendo podrás aprender sobre: La clase ListView Crear un ...

informática desarrollo android

IMG.displayed{display:block;margin-left:auto;margin-right:auto} En este articulo estudiaremos las características y el uso de la Action Bar (Barra de acción) en el desarrollo Android. Veremos su anatomía, como crear un archivo de diseño para ella, como ejecutar las acciones una vez presionado sus opciones y otras características relevantes. Indice: Funciones del Action Bar Anatomía de la Action ...