Android 如何在kotlin对象中定义上下文
如何在这样的对象中定义progressdialog的上下文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
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
设置为清单中的应用程序名称