Dans Android, pouvons-nous stocker un objet d'une classe dans une préférence partagée et récupérer l'objet plus tard?
Si c'est possible, comment le faire? Si ce n'est pas possible, quelles sont les autres possibilités de le faire?
Je sais que la sérialisation est une option, mais je recherche des possibilités utilisant la préférence partagée.
android
object
sharedpreferences
androidGuy
la source
la source
Réponses:
Pas possible.
Vous ne pouvez stocker que des valeurs simples dans SharedPrefences SharePreferences.Editor
Qu'en est-il en particulier de la classe que vous devez économiser?
la source
Oui, nous pouvons le faire en utilisant Gson
Télécharger le code de travail depuis GitHub
Pour sauver
Oublier
Mise à jour1
La dernière version de GSON peut être téléchargée depuis github.com/google/gson .
Mise à jour2
Si vous utilisez Gradle / Android Studio, mettez simplement ce qui suit dans
build.gradle
la section des dépendances -la source
String json = gson.toJson("MyObject");
devrait être l'objet et non une chaîne.nous pouvons utiliser Outputstream pour sortir notre objet dans la mémoire interne. Et convertir en chaîne puis enregistrer de préférence. Par exemple:
lorsque nous devons extraire un objet de la préférence. Utilisez le code comme ci-dessous
la source
J'ai eu le même problème, voici ma solution:
J'ai la classe MyClass et ArrayList <MyClass> que je souhaite enregistrer dans les préférences partagées. Au début, j'ai ajouté une méthode à MyClass qui le convertit en objet JSON:
Ensuite, voici la méthode pour enregistrer l'objet "ArrayList <MyClass> items":
Et voici la méthode pour récupérer l'objet:
Notez que StringSet dans les préférences partagées est disponible depuis l'API 11.
la source
Utilisation de la bibliothèque Gson:
Boutique:
Récupérer:
la source
Vous pouvez le faire en utilisant la
PowerPreference
bibliothèque en 3 étapes faciles!https://github.com/AliAsadi/PowerPreference
1. Créer un objet
2. Écrire selon la préférence partagée
3. Obtenir l'objet
la source
En utilisant cet objet -> TinyDB - Android-Shared-Preferences-Turbo c'est très simple. vous pouvez enregistrer la plupart des objets couramment utilisés avec lui comme des tableaux, des entiers, des listes de chaînes, etc.
la source
Vous pouvez utiliser bibliothèque Complex Preferences Android - by Felipe Silvestre pour stocker vos objets personnalisés. Fondamentalement, il utilise le mécanisme GSON pour stocker des objets.
Pour enregistrer l'objet dans les préférences:
Et pour le récupérer:
la source
Vous pouvez utiliser GSON, en utilisant Gradle Build.gradle:
Puis dans votre code, par exemple des paires chaîne / booléen avec Kotlin:
Ajout à SharedPrefs:
Maintenant, pour récupérer les données:
la source
Préférence partagée commune (CURD) SharedPreference: pour stocker des données sous la forme de paires valeur-clé avec une classe Kotlin simple.
Stocker des données:
Pour stocker des données String, Int et Boolean, nous avons trois méthodes avec le même nom et des paramètres différents (surcharge de méthode).
Récupérer les données: pour récupérer les données stockées dans SharedPreferences, utilisez les méthodes suivantes.
Effacer toutes les données: pour effacer toutes les SharedPreferences, utilisez le code ci-dessous.
Supprimer des données spécifiques:
Classe de préférence partagée commune
Blog: https://androidkeynotes.blogspot.com/2020/02/shared-preference.html
la source
Il n'y a aucun moyen de stocker des objets dans SharedPreferences, ce que j'ai fait est de créer une classe publique, de mettre tous les paramètres dont j'ai besoin et de créer des setters et des getters, j'ai pu accéder à mes objets,
la source
Avez-vous besoin de récupérer l'objet même après la fermeture de l'application ou juste pendant son exécution?
Vous pouvez le stocker dans une base de données.
Ou créez simplement une classe Application personnalisée.
Et puis de toutes les activités faites:
Pas vraiment le meilleur moyen mais ça marche.
la source
Oui, vous pouvez stocker et récupérer l'objet à l'aide de Sharedpreference
la source