有人可以向我解释它是如何工作的吗?
从(MainFragment)点击FAB通过导航组件创建新的片段(HabitEditorScreenFragment)。应用到它 Parcelable 参数。在那个片段中,我将使用新的 Int 参数类型进入新片段(EditColorFragment)。在那个片段中:
在可共享的 viewModel 中保存新的 int
我要用 findNavController().navigateUp() 回去
,现在是奇怪的事情。如果我在编辑字段中输入一些值,那么值将在 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()
}
}