title: Null Pointer Exception In Fragments
body: <p>I am getting NullPointerException while Starting One Fragment From other Fragment. I am trying to call a method in the second Fragment after Starting the Fragment dynamically.</p>
  
  <p>Here is my logcat:</p>
  
  <pre><code>05-20 09:58:31.907: E/AndroidRuntime(2585): FATAL EXCEPTION: main
  05-20 09:58:31.907: E/AndroidRuntime(2585): java.lang.NullPointerException
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at com.exercise.FragmentTest.MyFragment3.setImage(MyFragment3.java:22)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at com.exercise.FragmentTest.FragmentTestActivity$1.onClick(FragmentTestActivity.java:48)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at android.view.View.performClick(View.java:4204)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at android.view.View$PerformClick.run(View.java:17355)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at android.os.Handler.handleCallback(Handler.java:725)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at android.os.Handler.dispatchMessage(Handler.java:92)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at android.os.Looper.loop(Looper.java:137)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at android.app.ActivityThread.main(ActivityThread.java:5041)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at java.lang.reflect.Method.invokeNative(Native Method)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at java.lang.reflect.Method.invoke(Method.java:511)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
  05-20 09:58:31.907: E/AndroidRuntime(2585):     at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>And My Main Activity code:</p>
  
  <pre><code>public class FragmentTestActivity extends FragmentActivity{
  
      Fragment fragment;
      Button btnFragment1, btnFragment2, btnFragment3;
  
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          btnFragment1 = (Button)findViewById(R.id.displayfragment1);
          btnFragment2 = (Button)findViewById(R.id.displayfragment2);
          btnFragment3 = (Button)findViewById(R.id.displayfragment3);
  
         // get an instance of FragmentTransaction from your Activity 
          FragmentManager fragmentManager = getSupportFragmentManager();
          FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
  
          //add a fragment 
          MyFragment myFragment = new MyFragment();
          fragmentTransaction.add(R.id.myfragment, myFragment);
          fragmentTransaction.commit();
  
          btnFragment1.setOnClickListener(btnFragmentOnClickListener);
          btnFragment2.setOnClickListener(btnFragmentOnClickListener);
          btnFragment3.setOnClickListener(btnFragmentOnClickListener);
      }
  
      Button.OnClickListener btnFragmentOnClickListener
      = new Button.OnClickListener(){
  
          @Override
          public void onClick(View v) {
  
  
              if(v == btnFragment3){
                  MyFragment3 newfragment = new MyFragment3();
  
                  FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
  
                  // Replace whatever is in the fragment_container view with this fragment,
                  // and add the transaction to the back stack
                  transaction.replace(R.id.myfragment, newfragment);
                  transaction.addToBackStack(null);
  
                  // Commit the transaction
                  transaction.commit();
                              newfragment.setImage();
                  return;
  
              }
  
  
              // TODO Auto-generated method stub
              Fragment newFragment = null;
  
              // Create new fragment
              if(v == btnFragment1){
                  newFragment = new MyFragment();
              }
                  else if(v == btnFragment2){
                      newFragment = new MyFragment2();
                  }
  
  
              FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
  
              // Replace whatever is in the fragment_container view with this fragment,
              // and add the transaction to the back stack
              transaction.replace(R.id.myfragment, newFragment);
              transaction.addToBackStack(null);
  
              // Commit the transaction
              transaction.commit();
  
              // Create new transaction
  
          }};
  
  }
  </code></pre>
  
  <p>And My Fragment3 class is:</p>
  
  <pre><code>public class MyFragment3 extends Fragment {
      ImageView iv;
       @Override
       public View onCreateView(LayoutInflater inflater, ViewGroup container,
         Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View myFragmentView = inflater.inflate(R.layout.fragmentlayout3, container, false);
        iv = (ImageView)myFragmentView.findViewById(R.id.image); 
  
        return myFragmentView;
       }
       public void setImage(){
           iv.setImageResource(R.drawable.penguins);
       }
  }
  </code></pre>
  
  <p>Please help me to overcome this problem.</p>