在Android应用程序中使用kotlin静态类似的方法
我想添加一个“静态”方法,我的MyApplication类在kotlin我已经添加(作为一个属性)的变量:
private var context: Context? = null
在方法中:
override fun onCreate()
我补充说:
context = applicationContext
然后我添加一个像这样的伴侣对象
companion object { @JvmStatic fun getMyApplicationContext(): Context? { return MyApplication().context } }
当我从MyApplication.getMyApplicationContext()
这样的应用程序的其他部分调用这个方法时,它总是返回null。 我已经从几个来源收集了所有这些,但我不确定它是否接近正确或不正确。
听起来你想要一个全局的应用程序上下文对象。 现在抛弃我对全局变量的厌恶,我认为你是非常接近的。
我想你只需要将变量添加到MyApplication
类的伴侣对象中并直接使用它。 如果您要从Java访问该字段,则只需要@JvmField
批注。
class MyApplication { companion object { @JvmField var context: Context? = null // Not really needed since we can access the variable directly. @JvmStatic fun getMyApplicationContext(): Context? { return context } } override fun onCreate() { ... MyApplication.context = appContext } }
- 如何将ByteArray转换为Kotlin中指定字符集的字符串
- 如何将Gson类型适配器转换为Klaxon类型适配器
- CountdownTimer完成时如何通知Observable
- 如何在不同的类中调用函数
- 如何使用Android kotlin仅在日期选取器对话框中显示日期和月份
- 你能解释一下有趣的requestByZipCode吗?
- 迭代时从列表中移除IndexOutOfBoundsException:Java-> Kotlin
- 测试运行失败:由于'kotlin.UninitializedPropertyAccessException'导致测试运行失败
- 应用; 曾经使用过不同的AppComponent; 在预先验证期间