CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Help] shared preference android, j'y comprends rien

doxmixter
doxmixter
Niveau 6
24 novembre 2017 à 11:54:59

Bonjour,

Je voudrais utiliser cette fonctionnalité d'android pour stocker un nombre et y avoir accès sur chacune de mes "activity"

Mais comme dit dans le titre, j'y comprends rien.
Il faut 15 ligne de code avec plein de fonction pour enregistrer un pauvre nombre.

J'aurais besoin de votre aide pour m'expliquer comment ça marche et si vous avez la patience, à quoi servent chaques parties des lignes de codes pour "invoquer" ma putain de variable.

Bunyan
Bunyan
Niveau 17
24 novembre 2017 à 16:58:02

Ce serait cool de mettre ton code quand tu demandes de l'aide :)

M'enfin...

Les "15 lignes" pour sauver ton entier.
SharedPreferences.Editor editor = context.getSharedPreferences().edit(); edit.putInt("MA_CLEF", monInt); edit.commit();

Les autres "15 lignes" pour la lire :
Integer monInt = context.getSharedPreferences().getInt("MA_CLEF", null);

Donc, que ne comprends-tu pas là-dedans ? :)

doxmixter
doxmixter
Niveau 6
24 novembre 2017 à 19:04:50

Pourquoi tu crées un Editor et tu utilises edit ?

Un "Editor" est constituer de quoi? c'est une sorte de tableau , de pointeur ? du point vu bit à bit si tu as la réponse.

Sur google j'ai vu qu'il fallait un string pour le nom de ton fichier sur lequel tu enregistres les préférences, c'est bien comme ça qu'il faut faire?

Bon entre temps j'ai réussi à faire marcher ça chez moi, mais j'ai encore du mal à expliquer comment ça marche à quelqu'un. ^^*

Bunyan
Bunyan
Niveau 17
25 novembre 2017 à 09:01:30

Pourquoi tu crées un Editor et tu utilises edit ?

Car getSharedPreferences donne accès à un objet SharedPreferences qui est en lecture seule (j'imagine pour une histoire de cache interne lié aux applications). Pour les modifier (ajout, modification, suppression), il est nécessaire de passer par un éditeur explicitement, et c'est l'interface Editor qui est utilisé.
Pourquoi est-ce que ça fonctionne ainsi ? C'est développé ainsi.

Un "Editor" est constituer de quoi? c'est une sorte de tableau , de pointeur ? du point vu bit à bit si tu as la réponse.

Si tu veux regarder le code source de la classe SharedPreferences.Editor, le voici : http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/content/SharedPreferences.java#SharedPreferences.Editor

Je n'ai mon IDE sous la main pour enquêter plus.

Un Editor est un wrapper vers un processus de sauvegarde en mémoire morte qui s'applique lors de l'appel à la méthode "commit". Les SharedPreferences sont liées à ton application.
C'est donc plus un système de sauvegarde persistant avec gestion de cache.

Sur google j'ai vu qu'il fallait un string pour le nom de ton fichier sur lequel tu enregistres les préférences, c'est bien comme ça qu'il faut faire?

La, il me faudrait l'extrait de code pour bien te comprendre.
Je vais partir du principe que tu parles de cette ligne de code-ci :

 edit.putInt("MA_CLEF", monInt);

Les méthodes putXXXX d'un SharedPreferences.Editor prennent 2 paramètres. Le premier est une clef. Le second est la valeur à sauvegarder.
La clef joue le rôle de moyen d'accès. Il faut voir les SharedPreferences comme une table clef<->valeur (comme une Map en Java, ou en Hash dans d'autres langages).
Si tu souhaites enregistrer une nouvelle valeur, il faut la lier à une clef pour pouvoir la retrouver.
Si tu souhaites avoir une valeur, il faut connaître sa clef.
Une clef ne peut correspondre qu'à une seule valeur.

Est-ce que cela répond à tes questions ?

doxmixter
doxmixter
Niveau 6
25 novembre 2017 à 16:19:40

C'est une réponse de qualité en effet ^^
Merci beaucoup

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment