import android.preference.PreferenceManager;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// then you use
prefs.getBoolean("keystring", true);
Mise à jour
Selon les préférences partagées | Tutoriel pour les développeurs Android (partie 13) par Sai Geetha MN,
De nombreuses applications peuvent fournir un moyen de capturer les préférences des utilisateurs sur les paramètres d'une application ou d'une activité spécifique. Pour prendre en charge cela, Android fournit un ensemble simple d'API.
Les préférences sont généralement des paires nom / valeur. Ils peuvent être stockés en tant que «Préférences partagées» dans diverses activités d'une application (notez qu'il ne peut actuellement pas être partagé entre les processus). Ou cela peut être quelque chose qui doit être stocké spécifiquement pour une activité.
Préférences partagées: Les préférences partagées peuvent être utilisées par tous les composants (activités, services, etc.) des applications.
Préférences gérées par l'activité: ces préférences ne peuvent être utilisées que dans l'activité particulière et ne peuvent pas être utilisées par d'autres composants de l'application.
Préférences partagées:
Les préférences partagées sont gérées à l'aide de la getSharedPreferences
méthode de la Context
classe. Les préférences sont stockées dans un fichier par défaut (1) ou vous pouvez spécifier un nom de fichier (2) à utiliser pour faire référence aux préférences.
(1) La méthode recommandée consiste à utiliser le mode par défaut, sans spécifier le nom du fichier
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
(2) Voici comment obtenir l'instance lorsque vous spécifiez le nom du fichier
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
est le mode de fonctionnement des préférences. Il s'agit du mode par défaut et signifie que le fichier créé sera accessible uniquement par l'application appelante. Les deux autres modes pris en charge sont MODE_WORLD_READABLE
et MODE_WORLD_WRITEABLE
. Dans une MODE_WORLD_READABLE
autre application, vous pouvez lire le fichier créé mais ne pouvez pas le modifier. Dans le cas d' MODE_WORLD_WRITEABLE
autres applications, vous disposez également d'autorisations d'écriture pour le fichier créé.
Enfin, une fois que vous avez l'instance de préférences, voici comment vous pouvez récupérer les valeurs stockées à partir des préférences:
int storedPreference = preferences.getInt("storedInt", 0);
Pour stocker des valeurs dans le fichier de préférences, l' SharedPreference.Editor
objet doit être utilisé. Editor
est une interface imbriquée dans la SharedPreference
classe.
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
L'éditeur prend également en charge des méthodes telles que remove()
et clear()
pour supprimer les valeurs de préférence du fichier.
Préférences d'activité:
Les préférences partagées peuvent être utilisées par d'autres composants d'application. Mais si vous n'avez pas besoin de partager les préférences avec d'autres composants et que vous souhaitez avoir des préférences privées d'activité, vous pouvez le faire à l'aide de la getPreferences()
méthode de l'activité. La getPreference
méthode utilise la getSharedPreferences()
méthode avec le nom de la classe d'activité pour le nom du fichier de préférences.
Voici le code pour obtenir les préférences
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
Le code pour stocker les valeurs est également le même qu'en cas de préférences partagées.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Vous pouvez également utiliser d'autres méthodes comme le stockage de l'état d'activité dans la base de données. Remarque Android contient également un package appelé android.preference
. Le package définit des classes pour implémenter l'interface utilisateur des préférences d'application.
Pour voir d'autres exemples, consultez le post de stockage de données d'Android sur le site des développeurs.
package.prefs
mais je ne suis pas sûr.Si vous n'y avez pas accès
getDefaultSharedPreferenes()
, vous pouvez utiliser à lagetSharedPreferences(name, mode)
place, il vous suffit de saisir le bon nom.Android crée ce nom (éventuellement basé sur le nom du package de votre projet?). Vous pouvez l'obtenir en mettant le code suivant dans un
SettingsActivity
onCreate()
, et en voyant ce quipreferencesName
est.La chaîne doit ressembler à quelque chose
com.example.projectname_preferences
. Codez en dur quelque part dans votre projet, et passez-legetSharedPreferences()
et vous devriez être prêt à partir.la source
Déclarez d'abord ces méthodes.
Appelez ensuite cela lorsque vous souhaitez mettre un pref:
appelez cela quand vous voulez obtenir un pref:
Ou vous pouvez utiliser cet objet https://github.com/kcochibili/TinyDB--Android-Shared-Preferences-Turbo qui simplifie encore plus tout
Exemple:
la source
devoir passer le contexte partout me dérange vraiment. le code devient trop verbeux et ingérable. Je fais cela dans chaque projet à la place ...
et le définir dans l'activité principale créer
toutes les touches de préférence doivent être indépendantes de la langue, je suis choqué que personne ne l’ait mentionné.
maintenant appelez-le très simplement comme ça dans une ligne de code
la source
getApplicationContext()
si vous avez une case à cocher et que vous souhaitez récupérer sa valeur, c'est-à-dire vrai / faux dans n'importe quel fichier java--
Utilisation--
la source
Mise à jour 2019
Vous pouvez simplement utiliser la
PowerPreference
bibliothèquehttps://github.com/AliEsaAssadi/Android-Power-Preference
Obtenir une instance de préférence partagée
Pour obtenir l'instance par défaut, il vous suffit d'appeler
Ou si vous voulez un fichier de préférences spécifique
Écriture des données:
Obtention de données
la source
Essayez de suivre le code source, cela a fonctionné pour moi
la source