Android - 使用安全参数传递参数

Android - Pass Argument with safe args

在一个 activity 中,两个片段在切换时正在传递一些字符串。

大厅碎片

        button.setOnClickListener {
            LobbyFragmentDirections.actionLobbyFToGameF(myTitle)
            findNavController(requireActivity(), R.id.fragment_container_view).navigate(R.id.gameFragment)
        }

游戏片段

private val args: GameFragmentArgs by navArgs()

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val view = inflater.inflate(R.layout.fragment_game, container, false)
    UseArgument(args.argumentTitle)
}

导航图:游戏片段属性

问题

在获取游戏片段 onViewCreated 中的参数时,它会抛出一个 java.lang.IllegalArgumentException: Required argument "argumentTitle" is missing

button.setOnClickListener {
    val dir = LobbyFragmentDirections.actionLobbyFToGameF(myTitle)
    findNavController().navigate(dir)
}