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.