lunes, 16 de febrero de 2015

Android: Guardar datos en la aplicación

Buenas tardes!

Hoy vamos a ver como poder guardar datos en nuestra aplicación de manera persistente, es decir, si cierra la aplicación y mata el proceso al abrirla esos datos guardados seguirán estado disponibles para su utilización.

La clase que vamos a utilizar es SharedPreferences que funciona con una Key y su valor. Por ejemplo, key=email value=xxx@tutorialeshtml5.com. Para acceder al email abra que buscar la key 'email'.

Vamos a ver un ejemplo totalmente explicado para entenderlo perfectamente:


public class MyActivity extends ActionBarActivity {
    //Creamos los objetos necesarios
    private Button bt_guardar;
    private TextView txt;
    private EditText ed_text;
    private SharedPreferences datos;
    private String valorLeido;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        //Relacionamosocn el Layout XML
        bt_guardar = (Button)findViewById(R.id.button);
        txt = (TextView)findViewById(R.id.textView);
        ed_text = (EditText)findViewById(R.id.editText);

        //Leemos si hay datos guardados llamados 'Mail' en el archivo fichero_app
        //si no encuentra ningún dato cojerá como valor 'dato no encontrado'
        datos = getSharedPreferences("fichero_app", Context.MODE_PRIVATE);
        valorLeido = datos.getString("Mail",  "Dato no encontrado");
        //Añadimos el valor leido al textview de la aplicacion
        txt.setText(valorLeido);

        //Al pulsar el boton guardar
        bt_guardar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //recuperamos el 'datos' abierto anteriormente
                SharedPreferences.Editor editor = datos.edit();
                //guardamos ne el campo 'mail' lo que este escrito en el edittext 'ed_text'
                editor.putString("Mail", ed_text.getText().toString());
                //aquí podemois guardar más datos antes del commit.
                editor.commit();
            }
        });
    }
}

Para ver el resultado añado el vídeo del proyecto.


Muchas gracias!
Espero comentarios!





No hay comentarios:

Publicar un comentario en la entrada