Blog para desarrollo de aplicaciones en Android, aprende paso a paso como crear aplicaciones.

Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación para mostrarle publicidad personalizada y realizar análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. OK Más información | Y más

Como utilizar Shared Preferences en Android

Android Shared Preferences Example

Hola amigos en esta ocasión les traigo el siguiente ejemplo de como usar la librería Shared Preferences que es un método para almacenar información. Para tener un concepto claro para obtener mas información puedes consultar (Aquí).

Crear Nuevo Proyecto Android Studio

Comenzaremos creando nuestro proyecto (Aquí).

Teniendo listo nuestro proyecto comenzaremos diseñando una interfaz para nuestro ejemplo de Shared Preferences.
Android Studio - Shared Preferences



Shared Preferences Desing Layout

Les dejo el código fuente del Layout para realizar el ejemplo de nuestro Shared Preferences

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Contraseña"
android:id="@+id/textView"
android:layout_above="@+id/editText"
android:layout_centerHorizontal="true" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Aceptar"
android:id="@+id/button"
android:layout_below="@+id/editText"
android:layout_centerHorizontal="true"
android:layout_marginTop="46dp" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:layout_above="@+id/textView"
android:layout_centerHorizontal="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Nombre"
android:id="@+id/textView2"
android:layout_above="@+id/editText2"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp" />
</RelativeLayout>

En este primer ejemplo lo usaremos para almacenar información utilizando la librería Shared Preferences.
Android Studio - Shared Preferences

Código MainActivity

Ahora teniendo listo nuestro diseño comenzaremos con la programación de nuestra aplicación y tener claro el uso de la librería.

//--Declaramos la variable para la libreria Share Preferences
SharedPreferences sharedpreferences;
//--Declaramos las variables para mantener los datos de los EditText
EditText nombre;
EditText contra;
//--Declaramos el nombre de nuestra Preferencia para identificar de que valor debemos tomar
//--que estara almacenado
public static final String mypreference = "mypref";
public static final String Nombre = "nameKey";
public static final String Contra = "emailKey";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//--Asignamos las propiedades a las variables
nombre = (EditText) findViewById(R.id.editText2);
contra = (EditText) findViewById(R.id.editText);
//--Crear la preferencia en el tipo de modo Context Privado
sharedpreferences = getSharedPreferences(mypreference,
Context.MODE_PRIVATE);
//--Comprobamos que la preferencia tiene información almacenada y mostrarla en los EditText
if (sharedpreferences.contains(Nombre)) {
nombre.setText(sharedpreferences.getString(Nombre, ""));
}
//--Comprobamos que la preferencia tiene información almacenada y mostrarla en los EditText
if (sharedpreferences.contains(Contra)) {
contra.setText(sharedpreferences.getString(Contra, ""));
}
}

//--Función para tomar los datos escritos en los EditText y almacenarlos en la Preferencia
public void Guardar(View view){
//--Variable ques almacenan la información escrit
String n = nombre.getText().toString();
String e = contra.getText().toString();
//--Variable para el editor de la preferencia
Editor editor = sharedpreferences.edit();
//--Insertar la información en la preferencia
editor.putString(Nombre, n);
editor.putString(Contra, e);
//--Terminar
editor.commit();
//--Limpiar EditText
nombre.setText("");
contra.setText("");

}

El primer parámetro es la clave y el segundo parámetro es el modo. Aparte de lo privado hay otros modos disponibles que se enumeran a continuación,

sharedpreferences = getSharedPreferences(mypreference,Context.MODE_PRIVATE);

Mode & Descripción

MODE_APPEND

Esto añadirá las nuevas preferencias con las preferencias ya existentes.

MODE_ENABLE_WRITE_AHEAD_LOGGING

Indicador abierto de la base de datos. Cuando se establece, que permitiría escribir por adelantado de registro por defecto.

MODE_MULTI_PROCESS

Este método comprobará la modificación de las preferencias incluso si la instancia de la preferencia compartida ya se ha cargado.

MODE_PRIVATE

Al establecer este modo, sólo se puede acceder al archivo mediante la aplicación de llamada.

MODE_WORLD_READABLE

Este modo permite que otra aplicación lea las preferencias.

MODE_WORLD_READABLE

Este modo permite que otra aplicación lea las preferencias.
Ahora si recordaran en nuestra aplicación se había creado una función de guardado. Guardar que la asignaremos al botón Aceptar el cual ejecutara la acción. En la parte visual nos dirigiremos a las propiedades del botón y en la propiedad onClick.
Android Studio - Shared Preferences

Ahora teniendo lista esto vamos al siguiente paso que sera crear un botón para mostrar la información que hemos insertado. De la siguiente forma.
Android Studio - Shared Preferences

El cual usaremos para mostrar la información insertada.

Código MainActivity


//--Función para mostrar información
public void Mostrar(View view) {
//--Se le asignan las propiedades de los controles a las variables
nombre = (EditText) findViewById(R.id.editText2);
contra = (EditText) findViewById(R.id.editText);
//--Declara la variable preferencia
sharedpreferences = getSharedPreferences(mypreference,
Context.MODE_PRIVATE);
//--Comprueba con una condición si hay información para mostrar
if (sharedpreferences.contains(Nombre)) {
nombre.setText(sharedpreferences.getString(Nombre, ""));
}
if (sharedpreferences.contains(Contra)) {
contra.setText(sharedpreferences.getString(Contra, ""));
}
}
De igual forma que con el botón asignamos la función a nuestro botón Mostrar. Y la agregaremos al MainActivity.
Teniendo listo todo esto ejecutaremos nuestra aplicación para ver el resultado.


Crear emulador AVD (Aquí).

Vamos a crear nuestro emulador para ver el resultado de nuestro Shared Preferences.
Android Studio - Shared Preferences

Y este seria el resultado!

Descargar.
Espero que el contenido haya sido de tu agrado cualquier duda déjame tu comentario y con gusto te responderé. Comparte! Muchas gracias!

Android Studio - Curso Español

Android Studio - Curso Español

1 comentario:

x

Registrate!

Curso Android Español

Curso Kotlin Español

eBook Free Android Studio

Noticias y Eventos

¡Directamente a tu INBOX!

Le enviaremos nuestros recursos gratis. Para obtener nuestro contenido nuevo, únase a nuestra comunidad. No te molestaremos enviando información inútil. ¡No te pierdas ninguna actualización, mantente conectado! Recuerda verificar tu correo electronico.

Ingrese su dirección de correo electrónico:

Entregado por FeedBurner