在片段之间发送变量,并在ViewModel中使用它

问题描述 投票:0回答:1

我正在发送变量并在一个片段中接收它,但是对于ViewModel中的用户界面来说,这是必需的。在ViewModel中访问变量的最佳方法是什么?

发送片段

val gameMode = 1
val action = PlayFragmentDirections.actionPlayFragmentToGameFragment(gameMode)
findNavController().navigate(action)

接收片段

    binding = DataBindingUtil.inflate(inflater, R.layout.game_fragment,
        container,false)

    viewModel = ViewModelProviders.of(this).get(GameViewModel::class.java)

    val gameFragmentArgs by navArgs<GameFragmentArgs>()
    var x = gameFragmentArgs.gamemode

    binding.gameViewModel = ViewModel
    binding.lifecycleOwner = this
android android-fragments kotlin android-viewmodel
1个回答
0
投票

由于您正在使用jetpack库中的android的Navigation组件,我建议您阅读允许您在目标之间传输数据的Navigation safeargs。

Navigation Safeargs

© www.soinside.com 2019 - 2024. All rights reserved.