【发布时间】:2019-03-08 16:16:34
【问题描述】:
我有 MainActivity,其中包含带有选项卡的 TabLayout:每个选项卡都是一个片段,每个选项卡都有一个 RecyclerView。当我在主活动中点击 FAB 时,会打开 NewReminderActivity。
我使用架构组件:Entity(Reminder)、DAO、Room、ViewModel、LiveData 和 Repository。
问题是:
- 我应该使用哪些方法将新创建的提醒项传递到片段中(其中包含如上所述的 RecyclerView?
我有一些想法,但请你帮我,给我一个正确的实施方向:
1) 我想,我应该将数据传递给 MainActivity,然后从 MainActivity 传递到 Fragment,并使用 https://developer.android.com/topic/libraries/architecture/viewmodel.html#sharing 中提到的 ViewModel,对吗?
2) 我想我应该在 NewReminderActivity 中使用 setResult(),对吗?
【问题讨论】:
-
我认为更简洁的方法是首先将数据从 NewReminderActivityViewModel 更新到您的 Room 数据库。同时订阅 MainActivity 的 Fragments 以监听 Room 数据库中的更改,然后自动更新您的 RecyclerView 。 MainActivity MainActivityViewModel Room Database NewReminderActivity NewReminderActivityViewModel RoomDatabase 很高兴进一步讨论这个问题
标签: android mvvm android-room android-livedata android-viewmodel