Es muss eine dumme Frage sein, aber ich bin wirklich neu in Kotlin und habe keine Lösung gefunden.
Wie deklariere ich ein Klassenfeld? Wie wir es in Java haben können:
protected SharedPreferences mSharedPreferences;
Und später in onCreate()
:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Jetzt kann ich es überall verwenden (in Unterklassen dieser Basisaktivität).
Ich versuche dasselbe in Kotlin zu tun:
protected var sharedPreferences : SharedPreferences
Und in onCreate()
:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Aber ich bekomme eine Warnung: "Eigentum muss initialisiert oder abstrakt sein"
Dies aus den Kommentaren aus Alexander Udalovs Antwort auf Sichtbarkeit herausziehen. Für nullfähige Eigenschaften:
protected var sharedPreferences : SharedPreferences? = null
... und weisen Sie ihm später einen Wert zu.
quelle