title: How to use Parcelable in fragment for getting data?
body: <p>I can use Parcelable in Activity but I don't know how to use it in Fragment.</p>
  
  <p>I have a ListFragment in FragmentGet to display all rows database in ListView, I want to get details of ListView in another Fragment when it's clicked, I use Parcelable to passing data between Fragments.</p>
  
  <p>This is my Test.java:</p>
  
  <pre><code>import android.os.Parcel;
  import android.os.Parcelable;
  
  public class Test implements Parcelable {
  
      private int studentNumber;
      private String studentName;
      private String studentFamily;
  
      public int getStudentNumber() {
          return studentNumber;
      }
  
      public void setStudentNumber(int studentNumber) {
          this.studentNumber = studentNumber;
      }
  
      public String getStudentName() {
          return studentName;
      }
  
      public void setStudentName(String studentName) {
          this.studentName = studentName;
      }
  
      public String getStudentFamily() {
          return studentFamily;
      }
  
      public void setStudentFamily(String studentFamily) {
          this.studentFamily = studentFamily;
      }
  
      public Test() {
      }
  
      public Test(Parcel read) {
          studentNumber = read.readInt();
          studentName = read.readString();
          studentFamily = read.readString();
      }
  
      @Override
      public int describeContents() {
          return 0;
      }
  
      @Override
      public void writeToParcel(Parcel write, int flags) {
          write.writeInt(studentNumber);
          write.writeString(studentName);
          write.writeString(studentFamily);
      }
  
      public static final Parcelable.Creator&lt;Test&gt; CREATOR =
              new Parcelable.Creator&lt;Test&gt;() {
                  @Override
                  public Test createFromParcel(Parcel source) {
                      return new TestP(source);
                  }
                  @Override
                  public Test[] newArray(int size) {
                      return new TestP[size];
                  }
              };
  }
  </code></pre>
  
  <p>In FragmentSend.java I want to send data to FragmentGet.java, this is the code:</p>
  
  <pre><code>public class FragmentSend extends ListFragment {
  
      //    Classes
      TestReadData readData;
      TestDataSource dataSource;
  
      private List&lt;Test&gt; listTest;       
  
      public FragmentSend() {
          // Required empty public constructor
      }
  
  
      @TargetApi(Build.VERSION_CODES.M)
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
                               Bundle savedInstanceState) {
  
          View layout = inflater.inflate(R.layout.fragment_send, container, false);
  
          readData = new TestReadData(getContext());
          dataSource = new TestDataSource(getContext());  
  
         refreshStudentList(inflater);
  
      return layout;
  }
  
  public void refreshStudentList(LayoutInflater inflater) {
  
      listTest = readData.getAllStudentRows();
      ArrayAdapter&lt;Test&gt; testAdapter = new TestFragmentListAdapter(inflater.getContext(), listTest);
      setListAdapter(testAdapter);
  
  }
  
      @Override
      public void onResume() {
          super.onResume();
          dataSource.open();
      }
  
      @Override
      public void onPause() {
          super.onPause();
          dataSource.close();
      }
  
      @Override
      public void onListItemClick(ListView l, View v, int position, long id) {
          super.onListItemClick(l, v, position, id);
  
          Test model = listTest.get(position);
  
          // this three line code is for Activity not Fragment!
          Intent intent = new Intent(getContext(), FragmentGet.class);
          intent.putExtra("Student", model);
         // startActivity(intent);
  
          // I use this code for fragment
          Fragment fragmentGet = new FragmentGet();
      fragmentGet.setArguments(intent.getExtras());
      FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
      fragmentTransaction.replace(R.id.frame_container, fragmentGet);
      fragmentTransaction.addToBackStack(null);
      fragmentTransaction.commit();
  
      }
  </code></pre>
  
  <p>In the FragmentGet.java I get data like this:</p>
  
  <pre><code>public class FragmentGet extends Fragment {
  
      //    Classes
      Test model;    
  
      //    Variables
      private List&lt;Test&gt; listTest;
  
      public FragmentGet () {
          // Required empty public constructor
      }
  
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
                               Bundle savedInstanceState) {
          // Inflate the layout for this fragment
          View layout = inflater.inflate(R.layout.fragment_get, container, false);
  
          //        Classes Associated
          model = new Test(Parcel.obtain());
  
          Bundle bundle = getActivity().getIntent().getExtras();
          model = bundle.getParcelable("Student");
  
          return layout;    
      }
  </code></pre>
  
  <p>When I run the app, I will get this error:</p>
  
  <blockquote>
    <p>Attempt to invoke virtual method 'android.os.Parcelable
    android.os.Bundle.getParcelable(java.lang.String)' on a null object
    reference</p>
  </blockquote>
  
  <p>how can I fix this error?</p>