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!





1 comentario:

  1. Casino Poker Tournaments - Online Real Money Sites 2021
    Our casino poker tournaments 강원 랜드 바카라 and casino 피망 포커 현금화 tournaments also have various betting odds and options for you to choose. So, 더킹 바카라 the most popular online games 승인전화없는 토토 are sss 포커 poker

    ResponderEliminar