Preferenze condivise in Android
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

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































