Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在kotlin对象中定义上下文_Android_Kotlin - Fatal编程技术网

Android 如何在kotlin对象中定义上下文

Android 如何在kotlin对象中定义上下文,android,kotlin,Android,Kotlin,如何在这样的对象中定义progressdialog的上下文 import dmax.dialog.SpotsDialog object Constants { //These are all the constants within our application const val permission_request = 100 val firebaseAuth = FirebaseAuth.getInstance() val progressDialog

如何在这样的对象中定义progressdialog的上下文

import dmax.dialog.SpotsDialog

object Constants {
    //These are all the constants within our application
    const val permission_request = 100
    val firebaseAuth = FirebaseAuth.getInstance()
    val progressDialog = SpotsDialog.Builder().setContext(thecontext).build()
}

您可以给它一个在应用程序类中设置的
lateinit
context属性。然后使依赖它的属性变为惰性。但在这种情况下,它没有意义,因为对话框是暂时的。这不是一个常数。您不能重用对话框,因为Android会根据不同的生命周期过程销毁并重新创建承载对话框的活动/片段

但如果你有一个常数需要一个上下文,你可以这样做:

object Constants {
    lateinit var context: Context
    val foo by lazy { Foo(context) }
}

class MyApplication: Application() {
    override fun onCreate() {
        super.onCreate()
        Constants.context = this
    }
}
并确保将
.MyApplication
设置为清单中的应用程序名称