Comment Android SharedPreferences enregistrer/objet de banque
Nous avons besoin d'obtenir des objets utilisateur dans de nombreux endroits, qui contiennent de nombreux domaines. Après la connexion, je veux sauver/conserver ces objets. Comment pouvons-nous mettre ce genre de scénario?
Je ne peux pas le stocker comme ceci:
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString("BusinessUnit", strBusinessUnit);
- le type de données que vous souhaitez stocker?
- Cochez cette developer.android.com/guide/topics/data/data-storage.html
- Qu'entendez-vous par ~"et exécutif de l'Objet"? Veuillez vérifier votre grammaire avant de poster sur StackOverflow.
- Vous pouvez utiliser cette bibliothèque, qui possède de nombreuses fonctionnalités ... github.com/moinkhan-in/PreferenceSpider
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser gson.jar pour stocker des objets de la classe en SharedPreferences.
Vous pouvez télécharger ce pot de google-gson
Ou ajouter le GSON de la dépendance dans votre Gradle fichier:
La création d'un partagées préférence:
À enregistrer:
À récupérer:
compile 'com.google.code.gson:gson:2.8.2'
"
. Cela signifie que la taille et la lecture/écriture augmenter de façon spectaculaire. Il est mieux de sauvegarder JSON dans un fichier séparé dans la mémoire de stockage interne.À ajouter à @MuhammadAamirALi réponse, vous pouvez utiliser Gson d'enregistrer et de récupérer une liste d'objets
Enregistrer la Liste des objets définis par l'utilisateur pour SharedPreferences
Obtenir la Liste des objets définis par l'utilisateur à partir de SharedPreferences
Je sais que ce thread est un peu vieux.
Mais je vais les poster quand même en espérant que cela peut aider quelqu'un.
Nous pouvons stocker des champs de tout Objet partage de préférence par la sérialisation l'objet String.
Ici, j'ai utilisé
GSON
pour le stockage de n'importe quel objet à un partage de préférence.Enregistrer l'Objet de Préférences :
Récupérer l'Objet de la Préférence:
Remarque :
N'oubliez pas d'ajouter
compile 'com.google.code.gson:gson:2.6.2'
àdependencies
dans votre gradle.Exemple :
Mise à jour:
Comme @Sharp_Edge souligné dans les commentaires, la solution ci-dessus ne fonctionne pas avec
List
.Une légère modification à la signature de
getSavedObjectFromPreference()
- deClass<GenericClass> classType
àType classType
fera de cette solution généralisée. Modifié en fonction de la signature, de laPour les invoquer,
Heureux Codage!
commit
au lieu deapply
. Il pourrait vous aider.saveObjectToSharedPreferences()
dansonStop()
etgetSavedObjectFromPreference()
dansonStart()
ouonCreate()
. Ceux-ci sont appelés lorsque l'orientation est modifiée. Vous devez être prudent lors du démarrage et de la commutation de l'activité. Autre que cela, il fera beau.apply()
etcommit()
faire la même chose en Asynchrone et synchrone façon, respectivement.commit()
retournetrue
si les données sont correctement enregistrées. Un autre moyen de stockage de données en utilisant des données fragment. Vous devriez vérifier.List<CustomClass>
comment dois-je faire ?getSavedObjectFromPreference(context, "mPreference", "mObjectKey", SampleClass.class)
n'est pas d'accepterList<CustomClass>.class
🙁Class<GenericClass> classType
àType classType
dansgetSavedObjectFromPreference()
et il permettra de résoudre le problème. Par exemple: pour appeler l',getSavedObjectFromPreference(context, "mPreference", "mObjectKey", (Type) SampleClass.class)
Mieux est de Faire une
Constants
classe à enregistrer la clé ou des variables à récupérer ou sauvegarder des données.Pour enregistrer des données d'appeler cette méthode pour enregistrer les données de chaque où.
L'utiliser pour obtenir les données.
et une méthode de quelque chose comme cela fera l'affaire
Essayer cette meilleure façon :
PreferenceConnector.java
Écrire la Valeur :
Et d'Obtenir une valeur à l'aide de :
return PreferenceManager.getDefaultSharedPreferences(context);
au lieu dereturn context.getSharedPreferences(PREF_NAME, MODE);
Vous n'avez pas dit ce que vous faites avec le
prefsEditor
objet après cela, mais dans le but de conserver les préférences de données, vous devez également utiliser:Voir ici, cela peut vous aider:
https://github.com/AltasT/PreferenceVObjectFile/blob/master/PreferenceVObjectFile/src/com/altas/lib/PreferenceUtils.java
Une autre façon de sauvegarder et de restaurer un objet à partir d'android sharedpreferences sans utiliser le format Json
Vous pouvez enregistrer l'objet de préférences, sans l'aide de n'importe quelle bibliothèque, tout d'abord l'objet de votre classe doit implémenter Serializable:
}
Ensuite, vous pouvez facilement utiliser ces deux méthodes pour convertir un objet à la chaîne et de la chaîne de l'objet:
À enregistrer:
À lire
Étape 1: Copier coller de ces deux fonctions dans votre fichier java.
Étape 2:
pour économiser de l'utilisation:
pour récupérer utilisation:
Vous pouvez définir différents partagé préférences en utilisant différents noms comme:
Si vous souhaitez stocker l'ensemble de l'Objet que vous obtenez en réponse, On peut réussir à faire quelque chose comme
D'abord Créer une méthode qui convertit vos JSON dans une chaîne de caractères dans votre util classe comme ci-dessous.
Ensuite Partagé les Préférences de la Classe de Faire quelque chose comme,
puis de créer une méthode pour getPreferences
Puis il suffit d'appeler la Première méthode lorsque vous obtenez la réponse et
deuxième quand vous en avez besoin pour obtenir des données de partager les préférences comme
c'est tout.
Espère que ça va vous aider.
Happy Coding();
Si votre Objet est complexe, je vous suggère de Sérialiser/XML/JSON et de sauvegarder le contenu de la carte SD. Vous pouvez trouver des informations supplémentaires sur la façon d'enregistrer de stockage externe ici:
http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
il y a deux fichier résolu votre problème sur sharedpreferences
1)AppPersistence.java
2)AppPreference.java
maintenant, vous pouvez enregistrer,supprimer ou obtenir comme,
-enregistrer
-supprimer
-get
De stocker des données dans SharedPreference
Ma classe utils pour enregistrer la liste de
SharedPreferences
À l'aide de
.
Le code complet de mon utils //cochez à l'aide de l'exemple de code d'Activité
J'ai eu du mal à l'aide de la accepté de répondre à l'accès Partagé Préférence de données sur les activités. Dans ces étapes, vous donner getSharedPreferences un nom pour y accéder.
Ajouter la dépendance suivant dans la construction.gradel (Module: app) fichier sous Gradle Scripts:
À Enregistrer:
Pour Récupérer dans une Activité Différente:
espère que cela vous aide 🙂
Ajouté jackson bibliothèque de gradle:
Ma classe de test:
Java Objet JSON:
Stocker en commun des préférences:
Restaurer à partir partagé préférences: