Como salvar dados utilizando SharedPreferences – Android

postado em: Android, Tecnologia | 0

Olá pessoal,

Muitas vezes quando estamos desenvolvendo nossos aplicativos aparece a necessidade de persistir dados para utilizar posteriormente. Mas nem sempre queremos criar um banco de dados local ou enviar os dados para um servidor. Um exemplo clássico é quando o usuário faz o login no app e após fechar e abrir posteriormente, não necessite digitar os dados de acesso novamente.

No preferences do Android você pode armazenar dados primitivos no formato chave => valor. Os tipos permitidos são boolean, float, int, long e String.

Basicamente, você recupera a instância do SharedPreferences, cria um nome para o conjunto de dados, seta os atributos e valores e salva. Para ler é basicamente o mesmo processo: recupera a instância com o nome do arquivo especificado e busca o campo desejado. Segue o exemplo usado em uma Activity:

// Recupera a instância do preferences
SharedPreferences preferences = getSharedPreferences("my_prefs_data", MODE_PRIVATE);

// Para gravar os dados, pegar a instância do editor
SharedPreferences.Editor editor = preferences.edit();

// Seta a chave e o valor
editor.putString("campoString", "minhaString");
editor.putBoolean("campoBoolean", true);

// Persiste os dados
// Obs: Se esquecer de chamar o commit, os dados não serão persistidos
editor.commit();

Para recuperar um valor não é necessário o editor. Ex:

// Recupera a instância do preferences
SharedPreferences preferences = getSharedPreferences("my_prefs_data", MODE_PRIVATE);

// Recupera o valor
// Obs.: O segundo parâmetro é um valor padrão caso o campo não exista
String campoString = preferences.getString("campoString", "");
boolean campoBoolean = preferences.getInt("campoBoolean", false);

Quando setar um valor para um campo que já existe os dados serão atualizados. Você pode validar se um campo já existe através do método

preferences.contains("nomeDaCampo").

Caso esteja em uma classe que não seja uma Activity, pode ser utilizado o Context para recuperar instância. Ex:

SharedPreferences preferences = context.getSharedPreferences("my_prefs_data", MODE_PRIVATE);

Para mais informações acesse o link da documentação: https://developer.android.com/reference/android/content/SharedPreferences.

Seguir Altieres Bianchi:

Analista Desenvolvedor Mobile e Web, formado pela Universidade Tuiuti do Paraná e pós-graduado pela UTFPR.