Передайте функцию в dialogFragment - PullRequest
0 голосов
/ 29 октября 2019

кто-нибудь знает другой подход для передачи функции в DialogFragment, чем использование обратного вызова? При таком подходе необходимо уважать ОС Android (уничтожение компонентов системой).

1 Ответ

0 голосов
/ 29 октября 2019

не уверен, что вы хотите, но вы можете создать функцию как публичную переменную в вашем фрагменте следующим образом:

    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"
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...