8. Persistência de Dados

8.2. Tipos de Dados que Podem Ser Salvos em SharedPreferences

O SharedPreferences no Android é utilizado para armazenar dados simples e persistentes, de forma chave-valor. No entanto, ele é limitado a tipos de dados primitivos. Aqui estão os tipos de dados que podem ser armazenados diretamente no SharedPreferences:

  • String: Utilizado para armazenar texto
  • Int: Armazena números inteiros.
  • Boolean: Usado para armazenar valores verdadeiros ou falsos (booleanos).
  • Float: Armazena números com ponto flutuante (números decimais).
  • Long: Utilizado para armazenar números inteiros maiores que os permitidos pelo tipo Int (32 bits)
  • Set de Strings: Armazena conjuntos de strings (por exemplo, listas de palavras).
editor.putString("username", "JohnDoe")
editor.putInt("userAge", 25)
editor.putBoolean("isLoggedIn", true)
editor.putFloat("userHeight", 1.75f)
editor.putLong("lastLoginTime", System.currentTimeMillis())
editor.putStringSet("userInterests", setOf("Music", "Movies", "Coding"))

Como salvar dados do tipo Double?

Apesar de não existir uma forma específica de salvar dados do tipo Double é possível salvar os dados num formato de bits. E ao fazer a leitura converter esses bits para o valor.

// Obtém o SharedPreferences
val sharedPreferences = getSharedPreferences("AppPrefs", MODE_PRIVATE)
// Abre o editor para salvar
val editor = sharedPreferences.edit()
val price: Double = 2.50
editor.putLong("key", price.toBits())
// Confirma a gravação dos dados
editor.apply()

//Define um valor padrão
val defaultValue: Double = 1.00
//Le os dados em bits
val data = sharedPreferences.getLong("key", defaultValue.toBits())
//convert os bits em um número Double
val valuet = Double.fromBits(data)