navcontroller.navigate()不起作用lambda函数
按钮单击,我需要执行一个邮政请求,然后在网络捆绑包上加载的打开片段后。
现在,我正在不捆绑进行测试,但是导航
方法在我的网络处理程序中不起作用。
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论