¿Cómo podemos acceder al contexto de la aplicación dentro del objeto complementario en Android kotlin? Tengo un objeto complementario dentro de una clase abstracta y quiero acceder al contexto para leer Preferencias compartidas, pero no puedo obtener el contexto.
ACTUALIZACIÓN: estoy trabajando con estas cosas en una biblioteca de Android y también la clase en la que estoy trabajando es abstracta
por favor vea esto ir al enlace
class MainApplication : Application() { init { instance = this } companion object { private var instance: MainApplication? = null fun applicationContext() : Context { return instance!!.applicationContext } } override fun onCreate() { super.onCreate() // initialize for any // Use ApplicationContext. // example: SharedPreferences etc... val context: Context = MainApplication.applicationContext() } }Extiende la clase de aplicación como esta
import android.app.Application import android.content.Context class MyApplication : Application() { override fun onCreate() { super.onCreate() MyApplication.appContext = applicationContext } companion object { lateinit var appContext: Context } }luego obtén un contexto como este
val context = MyApplication.appContextEn realidad, estoy trabajando dentro de una biblioteca de Android y la clase es abstracta, por lo que no puedo seguir las soluciones ya sugeridas. Sin embargo, encontré la manera de hacerlo.
lateinit dentro del objeto complementario. abstract class MyClass { companion object { private lateinit var context: Context fun setContext(con: Context) { context=con } } } public class WelcomeActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); MyClass.Companion.setContext(this); } }