【发布时间】:2020-07-13 17:19:21
【问题描述】:
我有一个类,它在单击打开 CustomisationActivity 时显示带有按钮的 BottomSheetDialog
class InfoDialog(private val activity: Activity) {
private var bottomSheetDialog: BottomSheetDialog? = null
fun show() {
val view = LayoutInflater.from(activity).inflate(R.layout.info_dialog, null)
view.find<Button>(R.id.accept).setOnClickListener {
dismissDialog()
}
view.find<Button>(R.id.customize).setOnClickListener {
activity.startModal<CustomisationActivity>()
}
bottomSheetDialog = BottomSheetDialog(activity).apply {
setContentView(view)
setCancelable(false)
show()
}
}
private fun dismissDialog() {
bottomSheetDialog?.dismiss()
bottomSheetDialog = null
}
fun closeDialog() {
dismissDialog()
}
}
当用户单击布局 Activity 中的按钮时,我需要从 CustomisationActivity 调用方法 closeDialog()(在 BottomSheetDialog 中)。
可以帮我做吗?
非常感谢
博马奇
【问题讨论】:
-
您可以使用 DialogFragment 扩展 InfoDialog 并使用片段实例处理来自活动的事件。
-
非常感谢您的帮助。问题是leadDev 和应用程序的规则不允许我这样做。似乎可以使用回调,但我不知道该怎么做。
-
BottomSheetDialog 如何显示?你可以使用
LocalBroadcastReceiver -
非常感谢您的快速回复。可以从任何活动调用此对话框。如果用户单击自定义按钮,则打开自定义活动。如果点击验证按钮,我需要关闭对话框,如果点击后按,对话框必须打开。
-
试试 LocalBroadcastReceiver
标签: class android-activity methods call