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.
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.
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.
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.Descargar.
Espero que el contenido haya sido de tu agrado cualquier duda déjame tu comentario y con gusto te responderé. Comparte! Muchas gracias!
:)...................
ResponderEliminar