J'ai une classe A cette classe ne s'étend pas ou n'implémente aucune autre classe. J'ai alors une classe B, cette classe ne s'étend pas non plus et n'implémente aucune autre classe.Impossible d'initialiser SharedPreferences
ma classe B est utilisé uniquement pour gérer SharedPreferences
:
private static SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);
Voici la méthode de problème dans la classe B:
public static void setCurrentUsersEmail(String email){
sharedPreferences.edit().putString("userEmail",email).commit();
}
Maintenant la classe A est un gestionnaire de base de données et a besoin de stocker les utilisateurs email au SharedPreferences
pour un usage ultérieur. Je le fais avec le code suivant: `
MySharedPrefs.setCurrentUsersEmail(currentUsersEmail);
Cependant, lorsque je tente exécuter le code dans la classe A je reçois l'erreur:
java.lang.ExceptionInInitializerError at com.test.Android.MySharedPrefs.setCurrentUsersEmail(MySharedPrefs.java:0)
Je suis vraiment confus quant à pourquoi cela arrive, je ne pourrais pas Ne pas trouver une solution en ligne après la recherche non plus, j'utilise ma classe sharedPreferences dans d'autres activités parfaitement bien. Est-ce un problème d'activité?
Toute aide est très appréciée.
comment vous passez 'mContext' dans' getDefaultSharedPreferences() 'méthode – Aryan
Donc J'appelle 'setCurrentUsersEmail (currentUsersEmail)' depuis un adaptateur recyclerview. Cela passe ensuite à la classe A où la base de données est vérifiée, puis le SharedPreferences est appelé. Lorsque sharedPreferences est créé à l'origine, j'appelle une méthode de MainActivity pour obtenir ses données de contexte. Je ne pense pas que le contexte est envoyé dans cette instance si – memoryManagers