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.