miércoles, 3 de julio de 2013

#AndroidSharedPreferences


Haremos un programa que solicite el nombre del usuario y lo guarde
mediante SharedPreferences.
Al iniciar la aplicación poner en el  EditText el último nombre
introducido.
Un botón para almacenar el nombre y que finalice el programa.
Crearemos un nuevo proyecto llamado SharedPreferences y lo
almacenaremos en el package name: android.ejemplos
01




02

 




Disponemos un TextView y definimos su ID con el nombre tv1, la propiedad
Text con “Introduce Nombre:”.
Disponemos un EditText y definimos su ID con el nombre et1.
Disponemos un Button y definimos su propiedad Id con el nombre button1
su propiedad Text con el valor guardar su propiedad OnClic con el valor
guardar.

03

 





04




El código java es:
package android.ejemplos;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity {
private EditText et1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1=(EditText)findViewById(R.id.et1);
SharedPreferences guarda=getSharedPreferences(“archivo”,Context.MODE_PRIVATE);
et1.setText(guarda.getString(“nombre”,”"));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void guardar(View v) {
SharedPreferences guarda=getSharedPreferences(“archivo”,Context.MODE_PRIVATE);
Editor editarch=guarda.edit();
editarch.putString(“nombre”, et1.getText().toString());
editarch.commit();
finish();
}
}


Obtenemos la referencia del EditText: et1=(EditText)findViewById(R.id.et1);
Obtenemos una referencia de un objeto de la clase SharedPreferences a
través del método getSharedPreferences. El primer parámetro es el nombre
del archivo de preferencias y el segundo la forma de creación del archivo
(MODE_PRIVATE indica que solo esta aplicación puede consultar el archivo
XML que se crea)
SharedPreferences guarda=getSharedPreferences(“archivo”,Context.MODE_
PRIVATE);
Para extraer los datos del archivo de preferencias debemos indicar el nombre
a extraer y un valor de retorno si dicho nombre no existe en el archivo de
preferencias  hace que Android lo cree, si tratamos de extraer el valor de
nombre retornará el segundo parámetro es decir el String con una cadena
vacía:
et1.setText(guarda.getString(“nombre”,”"));
Cuando se presiona el botón “Guardar” lo que hacemos es grabar en el archivo
de preferencias el contenido del EditText en una variable llamada “nombre”:
public void guardar(View v) {
SharedPreferences guarda=getSharedPreferences(“archivo”,Context.MODE_
PRIVATE);
Editor editarch=guarda.edit();
editarch.putString(“nombre”, et1.getText().toString());
editarch.commit();
finish();
}
Debemos crear un objeto de la clase Editor y obtener la referencia del objeto
de la clase SharedPreferences que acabamos de crear. Mediante el método
putString almacenamos en nombre el valor del String cargado en el EditText.
Luego debemos llamar al método commit de la clase editor para que el dato
quede almacenado en el archivo de preferencias.
Esto hace que cuando volvamos a iniciar la aplicación se recupere el último
nombre ingresado.
Con finish de la clase Activity finaliza la actividad actual, al tener solo una
actividad en esta aplicacion, el programa terminara.
Por ultimo hay que añadir permiso para escritura en android manifest,
según imagen:

05

06