Ich habe eine Klasse A Diese Klasse erweitert oder implementiert keine anderen Klassen. Ich habe dann eine Klasse B, diese Klasse erweitert oder implementiert keine anderen Klassen.Kann SharedPreferences nicht initialisieren
ist meine Klasse B nur verwendet SharedPreferences
zu verwalten:
private static SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);
Hier ist das Problem Methode in der Klasse B:
public static void setCurrentUsersEmail(String email){
sharedPreferences.edit().putString("userEmail",email).commit();
}
Jetzt Klasse A ein Datenbankmanager und muss die Benutzer speichern, E-Mail in SharedPreferences
für die spätere Verwendung. Ich tue dies mit dem folgenden Code: `
MySharedPrefs.setCurrentUsersEmail(currentUsersEmail);
Allerdings, wenn ich den Code in der Klasse A laufen versuche ich den Fehler:
java.lang.ExceptionInInitializerError at com.test.Android.MySharedPrefs.setCurrentUsersEmail(MySharedPrefs.java:0)
Ich bin wirklich verwirrt, warum dies geschieht, ich couldn Finden Sie keine Lösung online nach der Suche, ich verwende meine sharedPreferences-Klasse in anderen Aktivitäten völlig in Ordnung. Ist es ein Aktivitätsproblem?
Jede Hilfe wird sehr geschätzt.
, wie Sie 'mContext' innen' getDefaultSharedPreferences passieren() 'Methode – Aryan
So Ich rufe 'setCurrentUsersEmail (currentUsersEmail)' von einem RecyclerView-Adapter. Dies geht dann zu Klasse A, wo die Datenbank überprüft wird und dann SharedPreferences aufgerufen wird. Wenn die sharedPreferences ursprünglich erstellt werden, rufe ich eine Methode von MainActivity auf, um ihre Kontextdaten zu erhalten. Ich glaube nicht, dass der Kontext in diesem Fall gesendet wird, obwohl – memoryManagers