Debe ser una pregunta estúpida, pero soy realmente nuevo en Kotlin y no encontré ninguna solución.
¿Cómo declarar el campo de la clase? Como podemos tenerlo en java:
protected SharedPreferences mSharedPreferences;
Y más tarde en onCreate()
:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Ahora puedo usarlo en cualquier lugar que desee (en subclases de esta actividad base).
Intento hacer lo mismo en Kotlin:
protected var sharedPreferences : SharedPreferences
Y en onCreate()
:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Pero recibo una advertencia: "La propiedad debe inicializarse o ser abstracta"
Sacando esto de los comentarios de la respuesta de Alexander Udalov para la visibilidad. Para propiedades que aceptan valores NULL:
protected var sharedPreferences : SharedPreferences? = null
... y asígnele un valor más tarde.
fuente