如何从 ViewModel 引用视图(例如 Spinner 值)
How to reference views (e.g. Spinner value) from ViewModel
我正在尝试引用一个 Spinner 视图及其来自 HomeViewModel
的值,该视图在 HomeFragment
中填充了一个字符串列表并声明在片段的 XML 布局文件中。
此微调器包含一个语言列表。
根据选择的语言,我在HomeViewModel
中通过spinner.getSelectedItem().toString()
分配了不同的变量。问题是,那里没有定义或引用 spinner
,我不会对我的 HomeFragment
进行处理,因为我会 运行 一些重代码,以免阻塞它.如何调用微调器?使用 HomeViewModel
作为一种协程是错误的吗?
你永远不应该这样做,因为它会导致内存泄漏。来自 documentation:
Caution: A ViewModel must never reference a view, Lifecycle, or any class that may hold a reference to the activity context.
如果您创建视图模型的方法并将所选语言作为参数传递并从视图 (Fragment) 中调用该方法会怎么样?
我正在尝试引用一个 Spinner 视图及其来自 HomeViewModel
的值,该视图在 HomeFragment
中填充了一个字符串列表并声明在片段的 XML 布局文件中。
此微调器包含一个语言列表。
根据选择的语言,我在HomeViewModel
中通过spinner.getSelectedItem().toString()
分配了不同的变量。问题是,那里没有定义或引用 spinner
,我不会对我的 HomeFragment
进行处理,因为我会 运行 一些重代码,以免阻塞它.如何调用微调器?使用 HomeViewModel
作为一种协程是错误的吗?
你永远不应该这样做,因为它会导致内存泄漏。来自 documentation:
Caution: A ViewModel must never reference a view, Lifecycle, or any class that may hold a reference to the activity context.
如果您创建视图模型的方法并将所选语言作为参数传递并从视图 (Fragment) 中调用该方法会怎么样?