改图来源: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中取消了这个方法, 改用this@Activity获取到我们所需的这个Activity, 在获取context时:this@activity.context即可
|