RecyclerView 里面的 DialogFragment 里面 Activity

RecyclerView inside DialogFragment inside Activity

当我按下 Activity 中的按钮时,会弹出 DialogFragment。在对话框片段中,有一个看起来像普通列表视图的 RecyclerView

我想要的行为是当我按下 RecyclerView 的第 n 行时,DialogFragment 关闭并且 Activity 根据与第 n 行关联的值执行某些操作。

看来ViewHolder必须实现OnClickListener接口。当一行被点击时,ViewHolder 的代表应该做一些事情。代表应该是DialogFragmentDialogFragment 反过来与它所附加的 Activity 对话。

如果是这样,ViewHolder就得请DialogFragment做点什么,DialogFragment就得请Activity做点什么。这是正确的方法吗?如何将 DialogFragment 的引用传递给 onCreateViewHolder()Adapter 是否应该保留对 DialogFragment 的引用?

是的,您正朝着正确的方向前进。在适配器的构造函数中传递 DialogFragment 的引用。获得引用并触发所需的单击事件后,在对话框的引用上调用 getActivity() 以获取对 activity 的引用。然后你就可以在activity中为所欲为了。另外,我建议您使用接口实现侦听器。你想要做的是保持 DialogFragment 对底层 activity 不可见,并且你的适配器与 DialogFragment 松散耦合,在这种情况下接口会有所帮助。