Android kotlin自定义警报对话框赢得';不要按程序排除
因此,我有一个带有自定义视图的警报对话框。 我将它设置在与片段不同的类中 我对此也有同样的问题。Android kotlin自定义警报对话框赢得';不要按程序排除,android,kotlin,Android,Kotlin,因此,我有一个带有自定义视图的警报对话框。 我将它设置在与片段不同的类中 我对此也有同样的问题。.show()已成功执行,但.disease()无法工作,因此即使调用了disease(),对话框仍在那里 这是我设置警报对话框的类 class LoadingDialog(val currentContext: Context) { val loadingDialogLayout = LayoutInflater.from(currentContext).inflate(R.layout.l
.show()
已成功执行,但.disease()
无法工作,因此即使调用了disease()
,对话框仍在那里
这是我设置警报对话框的类
class LoadingDialog(val currentContext: Context) {
val loadingDialogLayout = LayoutInflater.from(currentContext).inflate(R.layout.loading_dialog_layout, null)
val loadingDialog = AlertDialog
.Builder(currentContext)
.setView(loadingDialogLayout)
.setCancelable(false)
.create()
fun show() {
loadingDialog.show()
}
fun dismiss() {
loadingDialog.dismiss()
}
}
这就是我在片段中对它的称呼
....
LoadingDialog(activity as AppCompatActivity).show() <- Here
EHealthServiceClient.eHealthInstance.requestPickup(orderId).enqueue(object : Callback<DefaultResponse> {
override fun onFailure(call: Call<DefaultResponse>, t: Throwable) {
LoadingDialog(activity as AppCompatActivity).dismiss() <- Here
...
}
override fun onResponse(call: Call<DefaultResponse>, response: Response<DefaultResponse>) {
LoadingDialog(activity as AppCompatActivity).dismiss() <- Here
if (response.code() == 200) {
...
} else {
...
}
}
})
}
。。。。
LoadingDialog(活动作为AppCompatActivity).show()问题是每次都要实例化一个新的LoadingDialog
类,然后创建一个新的AlertDialog
实例
将LoadingDialog类更改为如下对象
object LoadingDialog {
lateinit var loadingDialog: AlertDialog
fun show(activity: Activity) {
val loadingDialogLayout = LayoutInflater.from(activity).inflate(R.layout.loading_dialog_layout, null)
this.loadingDialog = AlertDialog
.Builder(activity)
.setView(loadingDialogLayout)
.setCancelable(false)
.create()
loadingDialog.show()
}
fun dismiss() {
if (::loadingDialog.isInitialized) {
loadingDialog.dismiss()
}
}
}
然后你就可以打电话了
LoadingDialog.show(<your-context>)
LoadingDialog.dismiss()