当我按下Activity
中的按钮时,会弹出DialogFragment
。在对话框片段中,有一个看起来像普通列表视图的RecyclerView
。
我想要的行为是,当我按下RecyclerView
的第n行时,DialogFragment
关闭,Activity
根据与行n关联的值执行某些操作。
似乎ViewHolder
必须实现OnClickListener
接口。单击某行时,ViewHolder
代理应该执行某些操作。代表应该是DialogFragment
。 DialogFragment
反过来与它所附加的Activity
进行对话。
如果是这种情况,则ViewHolder
必须要求DialogFragment
执行某项操作,而DialogFragment
会要求Activity
执行某些操作。这是正确的方法吗?如何将DialogFragment
的引用传递给onCreateViewHolder()
? Adapter
是否应该引用DialogFragment
?
答案 0 :(得分:2)
是的,你正朝着正确的方向前进。在适配器的构造函数中传递DialogFragment
的引用。触发引用并触发所需的单击事件后,在对话框的引用上调用getActivity()
以获取对该活动的引用。然后你可以在活动中做任何你想做的事情。另外,我建议你使用接口实现监听器。你想要做的是让DialogFragment
对底层活动不可见,你的适配器松散地耦合到DialogFragment
,在这种情况下接口将有所帮助。