【发布时间】:2021-01-03 09:41:31
【问题描述】:
我的 MVVM 结构有问题。我创建应用程序并在片段之间传递数据。现在它工作正常,但我需要将此逻辑添加到我的 ViewModel。
这是我的 NotesClickFragment:
@AndroidEntryPoint
class NotesClickFragment : Fragment(R.layout.fragment_click_notes) {
private val args by navArgs<NotesClickFragmentArgs>()
private val viewModel: NotesClickViewModel by viewModels()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val binding = FragmentClickNotesBinding.bind(view)
binding.apply {
textViewTitleClick.setText(args.notesClickArgs.titleNotes)
textViewContentNotesClick.setText(args.notesClickArgs.contentNotes)
textViewHistoryClick.setText(args.notesClickArgs.createdNotesDateFormat)
}
}
}
这是我的 NotesClickViewModel:
class NotesClickViewModel @ViewModelInject constructor(
private val notesDao: NotesDao
) : ViewModel() {
}
我正在尝试添加一个私有参数val navArgs: NotesClickFragmentArgs 并创建其他函数来从片段中设置数据,但它不起作用。什么是好的做法?提前感谢您的提示。
【问题讨论】:
-
如果我需要 ViewModel 中 navArgs 的内容,我将它们作为 Bundle 传递给 ViewModel 的构造函数
-
这个答案应该可以帮助stackoverflow.com/a/64814055/764624
标签: android kotlin android-safe-args