There is a fragment of Fragment1 , with the help of the RecyclerView Button displayed in the adapter; it looks like this:
@Override public void onBindViewHolder(final ViewHolder holder,final int position){ final Fragment1 fragment1 = new Fragment1(); final int id = (listItems.get(position).getId()); holder.button.setText(listItems.get(position).getName()); holder.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.button: fragment1.replaceFragment(id); break; default: break; } } }); } The replaceFragment() method is registered in the Fragment1 class and is used to define the pressed button and replace Fragment1 with Fragment2 , Fragment3 , etc. It looks like this:
public class Fragment1 extends Fragment{ private RecyclerView recyclerView; private RecyclerAdapter adapter; private FragmentTransaction fragmentTransaction; private List<RecyclerItem> listItems; private Context context; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.pb_layout,null); recyclerView = (RecyclerView) v.findViewById(R.id.recyclerView); recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(new LinearLayoutManager(context)); listItems = new ArrayList<>(); adapter = new RecyclerAdapter(listItems, getActivity()); recyclerView.setAdapter(adapter); return v; } public void replaceFragment(int id){ fragmentTransaction = getFragmentManager().beginTransaction(); switch (id){ case 1: fragmentTransaction.replace(R.id.containerView, new Fragment2()).commit(); fragmentTransaction.addToBackStack(null); break; case 2: fragmentTransaction.replace(R.id.containerView, new Fragment3()).commit(); fragmentTransaction.addToBackStack(null); break; default: break; } }} It seems to work but knocks out an error:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.FragmentTransaction android.support.v4.app.FragmentManager.beginTransaction()' on a null object reference In the line: fragmentTransaction = getFragmentManager().beginTransaction();
Please tell me the reason.