我想在用户点击我的回收站视图中的项目时显示Fragment Dialog
。
我坚持认为如何在扩展FragmentDialog
的类中使用RecyclerView.ViewHolder
?
这是我到目前为止所做的:
public class FinalHolder extends RecyclerView.ViewHolder{
public FinalHolder(View view){
super(view);
TextView username= (TextView)view.findViewById(R.id.username);
TextView address = (TextView)view.findViewById(R.id.address);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ViewFragmentDialog viewFragmentDialog = new ViewFragmentDialog();
viewFragmentDialog.show() // THIS IS WHERE I AM HAVING TROUBLE. THE `show` METHOD EXPECTS A FRAGMENTACTIVITY
}
});
}
}
viewFragmentDialog.show()
方法是我遇到一些困难的地方 - 因为它期待Fragment Activity
但我正在使用RecyclerView.ViewHolder
答案 0 :(得分:1)
如果你想从DialogFragment
明确地调用它,我在这种情况下不会使用RecyclerView.ViewHolder
。主要原因是您需要访问FragmentManager
到show()
的{{1}}子类,而您却不需要。我看到两种可能的解决方案最简单的方法是使用普通DialogFragment
。您需要一个上下文来访问它,您可以使用AlertDialog
轻松检索,或使用itemView.getContext()
(又名Delegate
)与Listener
/ Activity
进行通信,并从那里显示Fragment