改图来源:https://blog.csdn.net/zhanqq2012/article/details/106269491?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.control&spm=1001.2101.3001.4242
直接说方法:
一、创建MyApplication类
class MyApplication : Application() {
//静态变量
companion object {
lateinit var context: Context
}
override fun onCreate() {
super.onCreate()
context = baseContext
}
}
然后在AndroidManifest中添加一行代码注册一下,应用初始化,否则无法获取MyApplication.context
<application
android:name=".MyApplication"
</application>
在应用时,直接写MyApplication.context即可获取
二、由上图可知,在创建Dialog时无法使用MyApplication获取context
若使用会出现以下报错:
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
创建Dialog时必须使用Activity添加这个窗体
我在应用时出现了报错,后来发现java中是使用Activity.this获取,
但是kotlin中取消了这个方法,
改用[email protected]获取到我们所需的这个Activity,
在获取context时:[email protected]即可