【发布时间】:2017-03-14 10:13:14
【问题描述】:
我在Recyclerview 中有一个对象列表。当长按一个项目时,我想显示一个对话框,其中包含所单击项目的数据。
Recyclerview 正在为每个项目使用数据绑定,我可以在长按时使用 Log 显示来自所选项目的数据。
但是,当尝试显示对话框时,您需要访问 Activity,不建议在 ViewModel 对象中使用。
那么我怎样才能显示对话框呢?
谢谢,欧维
【问题讨论】:
-
从概念上讲,ViewModel 让我觉得启动对话框的位置错误。为了更清楚地做到这一点,我会将 RecyclerView.ViewHolder 传递到布局中,并在 ViewHolder 上有一个方法来触发 RecyclerView.Adapter 上的自定义侦听器。然后订阅该侦听器(活动/片段)的任何人都可以启动对话框。可能看起来有点迂回,但我认为列表项的 ViewModel 不应该了解或控制其环境。
-
@Ulli 我同意。您能否将其添加为答案?
标签: java android mvvm android-databinding