Aujourd’hui, toujours dans la suite de notre précédent post, nous avons vu comment faire pour engistrer le score de notre utilisateur au nideau de notre application Android en utilisant Kotlin
Comment faire pour sauvegarder les données ?
Il existe plusieurs méthodes, mais dans notre vidéo d’aujourd’hui, nous avons utiliser la class SharedPreferences. Elle nous permet d’enregistrer toutes sortes de données ( String, Int, Boolean…etc).
D’abord, il faut créer un objet SharedPreferences
1 |
val sharedPreferences = getSharedPreferences("nom de votre package", Context.MODE_PRIVATE) |
On met le nom du package de notre application, et on choisit le mode PRIVATE, c’est à dire que les donnés ne peuvent t’être lu que par l’application elle-même et ne seront pas partager avec les autres applications.
1 2 3 4 5 6 |
// Enregistrer les donnés sharedPreferences.edit().putInt("maClé", 1).apply() sharedPreferences.edit().putBoolean("maClé2", true).apply() // Supprimer notre donnée sharedPreferences.edit().remove("maClé").apply() |
Au niveau de la ligne 2 et 3, nous faisons en sorte d’enregistrer deux informations, la première est un entier et le deuxième est boolean, vous noterez aussi qu’on a mis une clé comme premier paramètre, c’est aussi cette clé qui va nous permettre de récupérer la valeur qu’on a enregistrer.
Au niveau de la ligne 6, je pense que cela est assez clair, nous avons supprimer la clé “maClé” avec sa valeur
1 2 3 4 5 6 |
// Récupération de nos donnés val monEntier = sharedPreferences.getInt("maClé", 0) val monBoolean = sharedPreferences.getBoolean("maClé2", false) println(monEntier) // Cela va afficher 0 println(monBoolean) // Cela va afficher true |
Ici nous récupérons les donnés que nous avons enregistrer plus haut, par exemple pour la ligne 2, nous avons spécifié la clé mais aussi la valeur par défaut dans le cas où cette donnée n’est pas enregistrer
Pourquoi cela nous affiche 0 au lieu de 1 ?
C’est tout à fait normale, regardez plus haut, nous avons supprimer cette donnée (maClé), donc nous allons avoir la valeur par défaut qui est 0, contrairement à maClé2 à qui nous n’avons fait aucune modification, ce qui fait nous aurons true
Bref, voilà pour aujourd’hui, pour ceux qui se demande toujours l’importance de cela, imaginez que vous avez une application mobile qui fonctionne avec un Login, vous voulez s’avoir au lancement de votre application est-ce que l’utilisateur s’est déjà connecté afin de lui afficher la vue adéquate ou sinon vous le renvoyer à l’activtiy ou fragment afin qu’il puisse mettre ses identifiants…etc, enfin il y a plusieurs scénarions, il suffit simplement de faire travailler son imagination 😀
PS : CODE SOURCE