Bagaimana saya bisa mendefinisikan konteks untuk dialog kemajuan dalam objek seperti itu?

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()
}
0
John Kaita 5 April 2021, 08:49

1 menjawab

Jawaban Terbaik

Anda dapat memberikan properti konteks lateinit yang Anda atur di kelas Aplikasi Anda. Kemudian buat properti yang bergantung padanya Malas. Tetapi dalam kasus ini, itu tidak masuk akal, karena Dialog bersifat sementara. Itu tidak akan konstan. Anda tidak dapat menggunakan kembali dialog, karena Android menghancurkan dan membuat ulang Aktivitas/Fragmen yang menghostingnya sesuai dengan berbagai proses siklus hidup.

Tetapi jika Anda memiliki sesuatu seperti konstanta yang membutuhkan Konteks, inilah cara Anda melakukannya:

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

class MyApplication: Application() {
    override fun onCreate() {
        super.onCreate()
        Constants.context = this
    }
}

Dan pastikan Anda menetapkan .MyApplication sebagai nama Aplikasi dalam manifes.

1
Tenfour04 5 April 2021, 12:57