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 :

Problème avec récupération des préférences


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web et Mobile
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web et Mobile

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Problème avec récupération des préférences
    Bonjour,
    J'ai regardé les posts sur lesquels vous parlez de cela, mais pas moyen d'y arriver.

    Je veux donc récupérer dans mon application une des préférences :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    package fr.emergenceit.quiz;
     
    import android.app.Activity;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.preference.PreferenceManager;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
     
    public class ModeJeu extends Activity {
     
    	Button btnCLM;
    	Button btnSur;
    	Button btnCLMR;
    	Button btnSurR;
    	String idPack;
    	SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.modejeu);
     
    		// On récupère tous les éléments de notre interface grâce aux ID
    		btnCLMR = ((Button)this.findViewById(R.id.btnCLMR));
    		btnSurR = ((Button)this.findViewById(R.id.btnSR));
     
    		//On récupère l’Intent que l’on a reçu
    		Intent thisIntent = getIntent();
    		//On récupère les deux extra grâce à leurs id
    		idPack = thisIntent.getExtras().getString("idPack");
     
    		// On attribut un écouteur d'évènement à tous les boutons
    		btnCLMR.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				goToMenuTheme(1);
    			}
    		});
     
    		btnSurR.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				goToMenuTheme(2);
    			}
    		});
     
    	}
     
    	protected void goToMenuTheme(int extra) {
    		switch(extra) {
    		case 1:
    			Intent intentClmR = new Intent(this, Quiz.class);
    			intentClmR.putExtra("modeJeu", "Clm");
    			intentClmR.putExtra("idPack", idPack);
    			intentClmR.putExtra("tempsQuiz", preferences.getString("temps", "30")); // ICI
    			Log.i("ModeJeu", "ClmR");
    			this.startActivity(intentClmR);
    			finish();
    			break;
    		case 2:
    			Intent intentSurR = new Intent(this, Quiz.class);
    			intentSurR.putExtra("modeJeu", "Sur");
    			intentSurR.putExtra("idPack", idPack);
    			intentSurR.putExtra("nbQuestion", preferences.getString("nbQuestions", "20"));  // ICI
    			Log.i("ModeJeu", "SurR");
    			this.startActivity(intentSurR);
    			finish();
    			break;
    		}
    	}	
    }
    Voici ma class Preference :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
    import android.os.Bundle;
    import android.preference.PreferenceActivity;
     
     
    public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
     
    	SharedPreferences pref;
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		//setContentView(R.xml.prefs);
    		addPreferencesFromResource(R.xml.prefs);
     
    		pref = getPreferenceManager().getSharedPreferences();
    		pref.registerOnSharedPreferenceChangeListener(this);
    	}
     
    	@Override
    	public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) {
    		// TODO Auto-generated method stub
     
    	}
     
    }
    Et j'ai donc l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{fr.emergenceit.quiz/fr.emergenceit.quiz.ModeJeu}: java.lang.NullPointerException
     android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
     android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
     android.app.ActivityThread.access$2200(ActivityThread.java:119)
     android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
     android.os.Handler.dispatchMessage(Handler.java:99)
     android.os.Looper.loop(Looper.java:123)
     android.app.ActivityThread.main(ActivityThread.java:4363)
     java.lang.reflect.Method.invokeNative(Native Method)
     java.lang.reflect.Method.invoke(Method.java:521)
     com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
     com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
     dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
     android.content.ContextWrapper.getPackageName(ContextWrapper.java:120)
     android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:356)
     android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:351)
     fr.emergenceit.quiz.ModeJeu.<init>(ModeJeu.java:26)
     java.lang.Class.newInstanceImpl(Native Method)
     java.lang.Class.newInstance(Class.java:1479)
     android.app.Instrumentation.newActivity(Instrumentation.java:1021)
     android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)
    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Bonjour,

    As tu bien déclaré tes activity dans ton manifest?

    Que represente la ligne 26 de ton fichier modeJeu?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web et Mobile
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web et Mobile

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Mince désolé de pas l'avoir précisé.
    Ligne 26 : SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

    Et j'ai bien déclarer mes activités dans le manifeste.

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Ligne 26 : SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class ModeJeu extends Activity {
     
    	Button btnCLM;
    	Button btnSur;
    	Button btnCLMR;
    	Button btnSurR;
    	String idPack;
    	SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    C'est pas bien de la faire dans la déclaration .

    Plutôt comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class ModeJeu extends Activity {
     
     
    	SharedPreferences preferences = null; 
     
    @Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.modejeu);
     
                    PreferenceManager.getDefaultSharedPreferences(this);
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web et Mobile
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web et Mobile

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Et j'ai encore résolut mon problème tout seul

    En fait il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preferences = PreferenceManager.getDefaultSharedPreferences(this);
    Dans le onCreate et pas avant !!!

    Merci en tout cas.

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web et Mobile
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web et Mobile

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    On a répondu en même temps xD

    Merci ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/12/2010, 20h21
  2. Problème de récupération des valeurs avec ConfigurationManager
    Par titounnette dans le forum Windows Forms
    Réponses: 11
    Dernier message: 25/06/2009, 14h33
  3. Réponses: 2
    Dernier message: 31/03/2006, 09h23
  4. Réponses: 3
    Dernier message: 06/10/2005, 16h46
  5. Réponses: 8
    Dernier message: 12/05/2005, 08h16

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