To musi być głupie pytanie, ale jestem naprawdę nowy w Kotlinie i nie znalazłem żadnego rozwiązania.
Jak zadeklarować pole klasy? Tak jak możemy to mieć w javie:
protected SharedPreferences mSharedPreferences;
A później onCreate()
:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Teraz mogę go używać w dowolnym miejscu (w podklasach tej podstawowej aktywności).
Próbuję zrobić to samo w Kotlinie:
protected var sharedPreferences : SharedPreferences
A w onCreate()
:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Ale pojawia się ostrzeżenie: „Właściwość musi być zainicjowana lub abstrakcyjna”
Wyciągając to z komentarzy z odpowiedzi Aleksandra Udałowa na temat widoczności. W przypadku właściwości dopuszczających wartość null:
protected var sharedPreferences : SharedPreferences? = null
... i przypisz mu wartość później.
źródło