Salvar objetos no SharedPreferences do Android

postado em: Android, Programação | 0

Olá pessoal,

Hoje vou falar sobre como salvar objetos no SharedPreference do Android de forma simples. Para isso, vamos utilizar a bliblioteca Gson disponibilizada pelo Google.

Vamos usar a classe Usuario como exemplo:

public class Usuario {
    private String nome;
    private String email;

    public Usuario(String nome, String email) {
        this.nome = nome;
        this.email = email;
    }

    // Getters and Setters
}

Primeiramente vamos serializar o objeto, ou seja, transformá-lo numa String JSON:

// Instancia a classe Usuario
Usuario usuarioObject = new Usuario("Nome","exemplo@email.com");

// Instancia a classe Gson
Gson gson = new Gson();

// Converte o objeto para String JSON
String usuarioJson = gson.toJson(usuarioObject);

Feito isso, basta salvar o JSON retornado como String no preferences, conforme postagem feita por mim anteriormente http://www.phaneronsoft.com.br/2018/12/06/como-salvar-dados-utilizando-sharedpreferences-android/ :

// 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("keyUsuarioJson", usuarioJson);

// Persiste os dados
editor.commit();

Para recuperar o o objeto, basta fazer o processo inverso:

// 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 usuarioJson = preferences.getString("keyUsuarioJson", "");

// Instancia a classe Gson
Gson gson = new Gson();

// Converte a String JSON para objeto
Usuario usuarioObject = gson.fromJson(usuarioJson, Usuario.class);

Pronto, agora é só aproveitar e otimizar tempo de desenvolvimento.

Seguir Altieres Bianchi:

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