Preferenze condivise in Android

May 05 2023
Oggi vedremo il modo più semplice per archiviare i dati con un'applicazione di esempio. Generalmente, quando diciamo memorizzazione di dati, pensiamo prima a SQL, MongoDB, ecc.

Oggi vedremo il modo più semplice per archiviare i dati con un'applicazione di esempio. Generalmente, quando diciamo memorizzazione di dati, pensiamo prima a SQL, MongoDB, ecc. Ma presto vedremo che non ne abbiamo bisogno per i dati semplici .

Quando diciamo dati semplici, di solito conserviamo dati come l' età dell'utente , il paese di provenienza e le impostazioni preferite . Questi dati non vengono persi anche se l'utente chiude l'applicazione.

Cos'è SharedPreferences?

Possiamo conservare dati semplici senza bisogno di nulla in più. È una struttura che funziona con una coppia chiave-valore . I tipi di dati che possiamo conservare sono limitati a; Int, Boolean, Float, Long e String.

Usiamo ora questa struttura in un'applicazione in cui otteniamo l'età dell'utente e la salviamo. (Lascio qui il link GitHub .)

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)
    }

questo :

Lo usiamo per mostrare l'attività in cui ci troviamo.

com.aliduman.savemyage:

In questa parte ci chiede solo un nome. Generalmente, inseriamo il nome del pacchetto in questa parte.

Contesto.MODE_PRIVATE:

La modalità definisce chi può accedere alle preferenze della nostra app. Privato è la modalità predefinita e imposta l'accesso solo da questa app.

Usiamo SharedPreferences dopo aver effettuato le definizioni e le impostazioni. Il nostro obiettivo è inserire e salvare l'età dell'utente, quindi memorizzare questa età e mostrarla all'utente dopo aver chiuso e aperto l'applicazione.

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

getInt():

Questo metodo restituisce il valore dato. Se non è stato creato prima, lo farà.

età:

Questa è la chiave del valore che vogliamo mantenere.

-1:

Questo parametro viene utilizzato per assegnare un valore predefinito se non vengono immessi dati.

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.
          }
   }

modificare()

Lo usiamo per apportare modifiche o assegnazioni nel nostro valore.

putInt()

Lo usiamo per mettere i dati in ciò che memorizziamo.

fare domanda a()

questo metodo è necessario per implementare tutte queste modifiche.

L'utente inserisce il numero 23 e preme il pulsante Salva.↑

Lieto fine, quando l'utente rientra nell'applicazione, possiamo mostrare la sua età con il nostro algoritmo e SharedPreferences.↑

!AVVERTIMENTO!

Ho saltato alcuni passaggi importanti come il controllo null per concentrarmi su SharedPreferences. Non dimenticare di verificare se i dati inseriti dall'utente sono nulli o meno. Codice pulito, codice affidabile