从回收器适配器替换片段

Nia*_*na 2 android android-fragments

我正在开发一个Android应用程序,将listview更改为回收站视图.

问题

使用示例项目,我在适配器视图中处理对recylcer的单击.但是,从这个适配器,我有一个非常有时间调用一个新的片段.

    itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //         android.app.FragmentManager fragmentManager = getFragmentManager();
            //        FragmentManager fragmentManager = ((Activity) context).getFragmentManager();

            //       FragmentManager manager = this.getSupportFragmentManager();
            //       FragmentManager manager= getContext().getFragmentManager();

            //       FragmentManager fragmentManager = newsAdapter().getActivity().getFragmentManager();
            //       getActivity().getFragmentManager();
            Log.i("RecyclerViewItemClic", String.valueOf(getLayoutPosition()));

            Log.i("RecyclerViewItemClic", personName.getText().toString());
            String idnum = String.valueOf(personName.getText());
            Log.i("RecyclerViewItemClic", idnum);
            Log.i("RecyclerViewItemClic", personAge.getText().toString());

            if (personName.getText().toString() .equals("1")) {
            /*
                fragmentManager.beginTransaction()
                        .replace(R.id.content_frame
                                ,new numNumbersFrag())
                        .commit();


            */
                ((FragmentActivity) context).getFragmentManager().beginTransaction()
                        .replace(R.id.content_frame, new numNumbersFrag())
                        .commit();


            }
        }
Run Code Online (Sandbox Code Playgroud)

以上是我尝试导致错误的代码

尝试在空对象上调用虚拟方法'android.app.FragmentManager android.support.v4.app.FragmentActivity.getFragmentManager()'

如果我尝试使用getSupportFragmentManager(),或者导入片段而不是版本4,我也会得到相同的错误.

任何帮助,将不胜感激.

谢谢

use*_*816 8

更改

((FragmentActivity) context).getFragmentManager().beginTransaction()
                    .replace(R.id.content_frame, new numNumbersFrag())
                    .commit();
Run Code Online (Sandbox Code Playgroud)

((FragmentActivity) view.getContext()).getFragmentManager().beginTransaction()
                    .replace(R.id.content_frame, new numNumbersFrag())
                    .commit();
Run Code Online (Sandbox Code Playgroud)

因为,在

public void onClick(View view)
Run Code Online (Sandbox Code Playgroud)

view.getContext()将返回不为null的上下文.

谢谢,