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:
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 lIntent que lon 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:
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:
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.