Android 片段安全参数

Android fragment safe args

有人可以向我解释一下它是如何工作的吗?
从(MainFragment)点击 FAB 以通过导航组件创建新片段(HabitEditorScreenFragment)。将其应用于 Parcelable 参数。在该片段中,我将使用新参数类型 Int 进入新片段(EditColorFragment)。在该片段中:
将新的 int 保存在可共享的 viewModel
我要返回 findNavController().navigateUp()
而现在是奇怪的事情。如果我在 editfields 中输入一些值,这些值将在 safeArgs 值中。但是我没有把它保存在任何地方!

更新:
当我在编辑字段中键入内容时,它恰好发生了。 但是:

private fun setDoAfterTextChanged() = with(binding) {
        fhesHabitNameInput.doAfterTextChanged {
            viewModel.editorHabit.name = fhesHabitNameInput.text.toString()
            viewModel.canWeSave() //just cheking errors
            checkName() // checking specific field
        }
        fhesHabitDescriptionInput.doAfterTextChanged {
            viewModel.editorHabit.description = fhesHabitDescriptionInput.text.toString()
            viewModel.canWeSave()
            checkDescription()
        }
        fhesHabitFrequencyInput.doAfterTextChanged {
            viewModel.editorHabit.frequency = fhesHabitFrequencyInput.text.toString()
            viewModel.canWeSave()
            checkFrequency()
        }
    }

Here's the code

好的,我弄清楚发生了什么。把我当哑巴:D

viewModel.editorHabit = args.habitCharacteristics

这正在 viewModel.EditorHabit 上更改 link,而不是从 args 复制信息。真的很蠢 :D 对不起。