RecyclerView 里面的 DialogFragment 里面 Activity
RecyclerView inside DialogFragment inside Activity
当我按下 Activity
中的按钮时,会弹出 DialogFragment
。在对话框片段中,有一个看起来像普通列表视图的 RecyclerView
。
我想要的行为是当我按下 RecyclerView
的第 n 行时,DialogFragment
关闭并且 Activity
根据与第 n 行关联的值执行某些操作。
看来ViewHolder
必须实现OnClickListener
接口。当一行被点击时,ViewHolder
的代表应该做一些事情。代表应该是DialogFragment
。 DialogFragment
反过来与它所附加的 Activity
对话。
如果是这样,ViewHolder
就得请DialogFragment
做点什么,DialogFragment
就得请Activity
做点什么。这是正确的方法吗?如何将 DialogFragment
的引用传递给 onCreateViewHolder()
? Adapter
是否应该保留对 DialogFragment
的引用?
是的,您正朝着正确的方向前进。在适配器的构造函数中传递 DialogFragment
的引用。获得引用并触发所需的单击事件后,在对话框的引用上调用 getActivity()
以获取对 activity 的引用。然后你就可以在activity中为所欲为了。另外,我建议您使用接口实现侦听器。你想要做的是保持 DialogFragment
对底层 activity 不可见,并且你的适配器与 DialogFragment
松散耦合,在这种情况下接口会有所帮助。
当我按下 Activity
中的按钮时,会弹出 DialogFragment
。在对话框片段中,有一个看起来像普通列表视图的 RecyclerView
。
我想要的行为是当我按下 RecyclerView
的第 n 行时,DialogFragment
关闭并且 Activity
根据与第 n 行关联的值执行某些操作。
看来ViewHolder
必须实现OnClickListener
接口。当一行被点击时,ViewHolder
的代表应该做一些事情。代表应该是DialogFragment
。 DialogFragment
反过来与它所附加的 Activity
对话。
如果是这样,ViewHolder
就得请DialogFragment
做点什么,DialogFragment
就得请Activity
做点什么。这是正确的方法吗?如何将 DialogFragment
的引用传递给 onCreateViewHolder()
? Adapter
是否应该保留对 DialogFragment
的引用?
是的,您正朝着正确的方向前进。在适配器的构造函数中传递 DialogFragment
的引用。获得引用并触发所需的单击事件后,在对话框的引用上调用 getActivity()
以获取对 activity 的引用。然后你就可以在activity中为所欲为了。另外,我建议您使用接口实现侦听器。你想要做的是保持 DialogFragment
对底层 activity 不可见,并且你的适配器与 DialogFragment
松散耦合,在这种情况下接口会有所帮助。