navcontroller.navigate()不起作用lambda函数

发布于 2025-02-11 04:53:36 字数 993 浏览 0 评论 0原文

按钮单击,我需要执行一个邮政请求,然后在网络捆绑包上加载的打开片段后。

现在,我正在不捆绑进行测试,但是导航方法在我的网络处理程序中不起作用。

fun changeFragmentToMessages() {
    findNavController().navigate(R.id.action_loginFragment_to_messagesFragment)
}


private fun loginButtonClicked(v:View) {
    val login = inputLogin.text.toString()
    val password = inputPassword.text.toString()

    Fuel
        .post(ReqUtils.getUri("loadchats"))
        .body(
            JSONObject(
                mapOf(
                    "login" to login,
                    "password" to password
                )
            ).toString()
        )
        .header("content-type", "application/json")
        .response {
            request, response, result ->
            Log.d("HTTP", "Got login response")
            changeFragmentToMessages()
        }
}

我可以在logcat中看到“获得登录响应”,因此调用了lambda。 另外,如果我们在fuel ...呼叫之前将changefragmentTomessages()从lambda移出,则一切正常工作 - fragment在按钮上打开。

On button click I need to perform one POST request, after that open fragment with loaded from network bundle.

Now I am testing without bundle, but navigate method does not work, when it is in my network handler.

fun changeFragmentToMessages() {
    findNavController().navigate(R.id.action_loginFragment_to_messagesFragment)
}


private fun loginButtonClicked(v:View) {
    val login = inputLogin.text.toString()
    val password = inputPassword.text.toString()

    Fuel
        .post(ReqUtils.getUri("loadchats"))
        .body(
            JSONObject(
                mapOf(
                    "login" to login,
                    "password" to password
                )
            ).toString()
        )
        .header("content-type", "application/json")
        .response {
            request, response, result ->
            Log.d("HTTP", "Got login response")
            changeFragmentToMessages()
        }
}

I can see "Got login response" in logcat, so the lambda is called.
Also, if we move changeFragmentToMessages() out of lambda, before Fuel... call, everything works as it has to - fragment opens on button click.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文