将函数传递给dialogFragment

时间:2019-10-28 21:52:03

标签: android kotlin

有人知道与使用回调方法不同的将函数传递给DialogFragment的方法吗?这种方法需要尊重Android OS(按系统杀死组件)。

1 个答案:

答案 0 :(得分:0)

不确定您想要什么,但是可以在片段中创建一个作为public var的函数,如下所示:

    class MyFragment : Fragment(){
    ...

    var myFunction: (() -> Unit)? = null
    ...
    }


如果要传递变量或返回某些内容,请将函数更改为:

    var myFunction: ((text: String, b: Boolean) -> String)? = null

您可以通过以下方式调用此函数:
myFunction.invoke()

并传递如下参数:
 myFunction.invoke("title", true)

创建片段实例时

实现myFunction

    val fragment = MyFragment .newInstance().apply {
        myFunction = {
             //do something
        }

        //with parametrs
        myFunction = { s: String, b: Boolean
             //do something
             return "text"
        }
    }