IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Récupérer les sharedPreferences dans une classe.


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 61
    Points
    61
    Par défaut Récupérer les sharedPreferences dans une classe.
    Bonjour à tous,

    Quand je souhaites récupérer les préférences dans une simple classe java avec cette méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SharedPreferences settings=getSharedPreferences(ACCESS_INFO,0);
    Eclipse me dit que la méthode "getSharedPreferences" n'existe pas.

    Y a t'il un moyen de récupérer les préférences dans une simple classe java ?

    D'avance merci pour votre aide.

    Guillaume.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Deux solutions :

    Soit dans la méthode de ta classe tu passes un object context :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void maMethode(Context ctx)
    {
        ctx.getSharedPreferences();
    }
    Soit tu créer une classe qui dérive de Application et qui sauvegarde dans un attribut static le contexte global de l'application

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class MonAppli extends Application
    {
        private static MonAppli  instance;
     
        @Override
        public void onCreate() {
            super.onCreate();
            instance = this;
        }
     
        public static MonAppli getInstance() {
            return instance;
        }
    }
    Dans ton manifest tu fais pointer l'attribut name du tag <Application> sur ta nouvelle classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:name="MonAppli"
    Tu es ensuite capable n'importe où dans ton appli de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonAppli.getInstance().getSharedPreferences();
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Merci pour ta réponse, malheureusement cela ne fonctionne pas.
    Lorsque je fais pointer l'attribut name du tag <Application> sur ma classe, j'ai comme erreur: unable to instantiate application.
    Le but est de pouvoir récupérer les préférences dans mon ContentProvider.

  4. #4
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Tout simplement avec la méthode getContext : http://developer.android.com/referen...ml#getContext()

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class TotoProvider extends ContentProvider {
     
       public boolean onCreate() { ...}
     
       public Cursor query(...) {
            ...
            SharedPreferences settings=this.getContext().getSharedPreferences();
            ...
       }
     
    }
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. [ZF 1.11] Récupérer les headers dans une classe
    Par Paul75 dans le forum Autres composants
    Réponses: 2
    Dernier message: 31/10/2012, 13h45
  2. Réponses: 1
    Dernier message: 10/04/2010, 19h04
  3. Réponses: 5
    Dernier message: 09/04/2010, 16h49
  4. Récupérer les variables dans une popup
    Par Msieurduss dans le forum Langage
    Réponses: 4
    Dernier message: 21/08/2006, 20h05
  5. récupérer les paramètres dans une url
    Par asetti dans le forum ASP
    Réponses: 6
    Dernier message: 23/12/2005, 10h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo