1

有人可以向我解释它是如何工作的吗?
从(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()
        }
    }

这是代码

4

1 回答 1

1

好的,我正在弄清楚发生了什么。让我哑口无言。:D

viewModel.editorHabit = args.habitCharacteristics

viewModel.EditorHabit这是关于不从 args 复制信息的更改链接。真的很愚蠢 :D 对不起。

于 2021-07-21T08:59:35.947 回答