Fragment间传递输入框值显示异常:值显示为资源标识求助
解决Fragment间传递输入框值显示为资源标识的问题
你遇到的问题核心是错误调用了EditText的toString()方法——这个方法返回的是控件对象本身的字符串描述(通常包含资源ID相关信息),而非用户输入的文本内容。
修正LoginFragment的代码
把获取输入值的逻辑改成读取EditText的text属性再转字符串:
binding.buttonLogin.setOnClickListener{ val userName = binding.etUserName.text.toString() val password = binding.etPassword.text.toString() val action = LoginFragmentDirections.actionLoginFragmentToWelcomeFragment(userName, password) findNavController().navigate(action) }
WelcomeFragment的接收代码无需修改
你当前的参数接收逻辑是正确的:
val args: WelcomeFragmentArgs by navArgs() binding.tvUserName.text = args.userName binding.tvPassword.text = args.password
修改后重新运行,就能正确传递并显示用户输入的账号和密码了。
内容的提问来源于stack exchange,提问作者WALFAZ
相关产品推荐
相关产品推荐

