如何从活动中调用非活动类中的方法

问题描述 投票:0回答:1

我有一个在单击打开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()
    }
}

并且当用户单击布局活动中的按钮时,我需要从CustomisationActivity调用方法closeDialog()(在BottomSheetDialog中)。

请您帮帮我吗?

非常感谢

Bomatch

class android-activity methods call
1个回答
0
投票

您应该可以使用CustomisationActivity启动startActivityForResult()CustomisationActivity完成后,将在原始onActivityResult()(开始Activity)中调用Dialog。然后,您应该可以从那里在dismiss()上调用Dialog

© www.soinside.com 2019 - 2024. All rights reserved.