当我尝试显示2个输入视图时,我收到一个错误。它们被捕获在一个片段屏幕中,然后我尝试在第二个片段屏幕上显示它们。导航工作正常,但它们显示为资源?...我甚至不知道它叫什么。
这是调用该屏幕的setOnClickListener。我怀疑它与safeArgs一起使用
binding.buttonConfirm.setOnClickListener{
val username = binding.editTextUsername.toString()
val password = binding.editTextPassword.toString()
val action = LoginFragmentDirections.actionLoginFragmentToWelcomeFragment(username, password) // this is generated class due to nav graph
findNavController().navigate(action)
}
在调试器中,我添加了一些监视
我是一个新手到Android,并以stackoverflow作为海报。谢谢任何帮助
2条答案
按热度按时间hrirmatl1#
你在
EditText
上调用toString()
,但实际上并没有得到用户输入的文本--要做到这一点,你需要调用getText()
,在Kotlin代码中,你可以通过text
属性来实现:ncecgwcz2#
您正在获取视图本身而不是它的值。为此,请获取值,而不是视图。
或者,您可以使用Bundle对象在目标之间传递数据。
创建一个Bundle对象,并使用navigate()将其传递给目标,如下所示:
在接收目的地的程式码中,使用getArguments()方法撷取Bundle并使用其内容: