To musi być głupie pytanie, ale jestem naprawdę nowy dla Kotlin i nie znalazłem żadnego rozwiązania.Właściwość musi zostać zainicjowana lub być abstrakcyjna
Jak zadeklarować pole klasy? Jak możemy mieć go w Java:
protected SharedPreferences mSharedPreferences;
a później w onCreate()
:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Teraz można go używać w dowolnym miejscu chcę (w podklas tej działalności podstawowej).
staram się zrobić to samo w Kotlin:
protected var sharedPreferences : SharedPreferences
I onCreate()
:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Ale pojawia się ostrzeżenie: "Nieruchomość musi być zainicjowany lub być abstrakcyjny"
Próbowałem użyć „chronione sharedPreferences var: SharedPreferences? = Null "i działa również, jaka jest różnica? –
Widzę, że jeśli używam Dagger2 dla DI, muszę użyć waszego wariantu, prawda? –
Różnica polega na tym, że można zadeklarować wartości nie podlegające zerowaniu z lateinitem. –