如何在扩展RecyclerView.ViewHolder的类中使用FragmentDialog?

时间:2016-02-21 18:24:00

标签: android fragment android-recyclerview android-dialogfragment

我想在用户点击我的回收站视图中的项目时显示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

1 个答案:

答案 0 :(得分:1)

如果你想从DialogFragment明确地调用它,我在这种情况下不会使用RecyclerView.ViewHolder。主要原因是您需要访问FragmentManagershow()的{​​{1}}子类,而您却不需要。我看到两种可能的解决方案最简单的方法是使用普通DialogFragment。您需要一个上下文来访问它,您可以使用AlertDialog轻松检索,或使用itemView.getContext()(又名Delegate)与Listener / Activity进行通信,并从那里显示Fragment