Preferências compartilhadas no Android

May 05 2023
Hoje, veremos a maneira mais fácil de armazenar dados com um aplicativo de exemplo. Geralmente, quando dizemos armazenamento de dados, pensamos primeiro em SQL, MongoDB, etc.

Hoje, veremos a maneira mais fácil de armazenar dados com um aplicativo de exemplo. Geralmente, quando dizemos armazenamento de dados, pensamos primeiro em SQL, MongoDB, etc. Mas logo veremos que não precisamos deles para dados simples .

Quando dizemos dados simples, geralmente mantemos dados como a idade do usuário , de que país ele é e suas configurações preferidas . Esses dados não são perdidos mesmo que o usuário feche o aplicativo.

O que é SharedPreferences?

Podemos manter dados simples sem precisar de nada extra. É uma estrutura que trabalha com um par Chave-Valor . Os tipos de dados que podemos manter são limitados a; Int, Boolean, Float, Long e String.

Vamos agora usar essa estrutura em uma aplicação na qual pegamos a idade do usuário e salvamos. (Eu coloco o link do GitHub aqui .)

class MainActivity : AppCompatActivity() {

    private lateinit var preferences : SharedPreferences

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        }
}

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        preferences = this.getSharedPreferences("com.aliduman.savemyage"
                                                , Context.MODE_PRIVATE)
    }

isto :

Nós o usamos para mostrar a atividade em que estamos.

com.aliduman.savemyage:

Nesta parte, ele apenas nos pede um nome. Geralmente, colocamos o nome do pacote nesta parte.

Context.MODE_PRIVATE:

O modo define quem pode acessar as preferências do nosso aplicativo. Privado é o modo padrão e define que só pode ser acessado a partir deste aplicativo.

Vamos usar SharedPreferences depois de fazer as definições e configurações. Nosso objetivo é inserir e salvar a idade do usuário, armazenar essa idade e mostrá-la ao usuário após fechar e abrir o aplicativo.

var currentAge = preferences.getInt("age",-1)

getInt():

Este método retorna o valor fornecido. Se não for criado antes, será.

idade:

Esta é a chave para o valor que queremos manter.

-1:

Este parâmetro usamos para atribuir um valor por padrão se nenhum dado for inserido.

if (currentAge != -1) { //if user saved age before..
    age_text.hint = currentAge.toString()

 } else {//if first time user saved age

      save_button.setOnClickListener {
          var ageInput =  Integer.valueOf(age_text.text.toString())
          preferences.edit().putInt("age", ageInput).apply() //We save it to SharedPreferences.
          }
   }

editar()

Nós o usamos para fazer alterações ou atribuições em nosso valor.

putInt()

Nós o usamos para colocar dados no que armazenamos.

aplicar()

esse método é necessário para implementar todas essas alterações.

O usuário insere o número 23 e pressiona o botão salvar.↑

Final feliz, quando o usuário entrar novamente no aplicativo, podemos mostrar sua idade com nosso algoritmo e SharedPreferences.↑

!AVISO!

Ignorei algumas etapas importantes, como verificação nula, para focar em SharedPreferences. Não se esqueça de verificar se os dados inseridos pelo usuário são nulos ou não. Código limpo, código confiável