如何向 dialogFragment 传递一个参数?

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

如何将值传递给对话框片段?

比方说,我有 isStarted bool值,我把这个参数传给了 DialogFragment 像这样。

DatePickerFragmentDialog(isStarted).show

而在我的体内 DialogFragment 我明白这个论点。

class DatePickerFragmentDialog(isStarted: Boolean) : DialogFragment() {

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {}
}

但我不能用这个论点来处理... onCreateDialog 重写法

android android-fragments kotlin android-dialogfragment
1个回答
0
投票

你需要使用参数来传递你的值。

class DatePickerFragmentDialog : DialogFragment() {

    companion object {
        fun newInstance(isStarted: Boolean): DatePickerFragmentDialog {
            val f = DatePickerFragmentDialog()
            // Supply isStarted input as an argument.
            val args = Bundle()
            args.putBoolean("isStarted", isStarted)
            f.arguments = args
            return f
        }
    }

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        val isStarted = arguments?.getBoolean("isStarted")
        // Return some dialog
        return super.onCreateDialog(savedInstanceState)
    }
}

Show it:

val fragment = DatePickerFragmentDialog.newInstance(true)
fragment.show(supportFragmentManager, "myFragment")
© www.soinside.com 2019 - 2024. All rights reserved.