fragment如何传递数据给到viewmodel?

caibirdcnb 2021-05-03 11:27:01
我有个数据从FirstFragment.class传递到SecondFragment.class。(已经实现了,使用Safe Args)
但我需要用到数据的地方是SecondViewModel.class
请问如何将数据从SecondFragment.class传递到SecondViewModel.class?谢谢!


I use Safe Args and LiveData to send args from FirstFragment.class to SecondFragment.class.

But I need the args in SecondViewModel.class, not in SecondFragment.class.

How to send the args from SecondFragment.class to SecondViewModel.class?
...全文
1200 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jyh149129 2021-06-13
  • 打赏
  • 举报
回复
SavedStateViewModelFactory
caibirdcnb 2021-05-22
  • 打赏
  • 举报
回复
引用 5 楼 qq_1113502097 的回复:
ViewModel实现了生命周期的接口,你传入的Context是application,那么所创建的VM就是在整个APP相同。
请问你的这个回复和我的问题有什么关系?(没有冒犯的意思,只是确实不明白,如有得罪,请多多包涵) 我的问题是fragment如何传递数据给到viewmodel?
caibirdcnb 2021-05-20
  • 打赏
  • 举报
回复
引用 2 楼 qq_1113502097 的回复:
ViewModel可以与Activity绑定,Activity可以生成Fragment示例。 那么在Fragment可以通过getActivity获得对应的活动实例,因此可以的到绑定的ViewModel。
我的ViewModel与Activity没有任何关系。在Fragment中,通过工厂模式持有ViewModel,代码如下: NewCodeFragment.class中的代码:
        val application = requireNotNull(this.activity).application
        val sumDbDao = Db.getInstance(application).sumDbDao
        val viewModelFactory = NewCodeViewModelFactory(application, sumDbDao)
        val newCodeViewModel = ViewModelProvider(this, viewModelFactory).get(NewCodeViewModel::class.java)
qq_1113502097 2021-05-20
  • 打赏
  • 举报
回复
ViewModel实现了生命周期的接口,你传入的Context是application,那么所创建的VM就是在整个APP相同。
2020再出发 2021-05-12
  • 打赏
  • 举报
回复
我是通过界面回调方法获取Fragment数据的,只是我使用的一个方法,楼上的应该是正解
qq_1113502097 2021-05-07
  • 打赏
  • 举报
回复
ViewModel可以与Activity绑定,Activity可以生成Fragment示例。 那么在Fragment可以通过getActivity获得对应的活动实例,因此可以的到绑定的ViewModel。
不会写代码的猴子 版主 2021-05-06
  • 打赏
  • 举报
回复
你的SecondViewModel和SecondFragment之间是如何关联的?

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧