title: App shut down,when a button which defined in fragment pressed (Use Veiwpager)
body: <p>I have a project that receives messages from other devices.</p>
  
  <p>When it receives data, it then uses the <code>setText</code> method to renew the <code>TextView</code> in the third fragment.</p>
  
  <p>I tried some methods but they didn't work. I'm having some problems, so I hope someone can help.</p>
  
  <p>I previously directly set <code>TextView</code> of fragment; is this why I cannot set it now?</p>
  
  <p><strong>Question 1:</strong></p>
  
  <p>At first,scan the QR code then start another activity to deal with and immediately renew <em>TextView A</em> in  fragment Three.
  ((app shut down...But
  after app restart , TextView has "Changed". <br/></p>
  
  <p>I defined a <strong>button</strong> in fragment three. When pressed, it expected renew <em>TextView B</em> in fragment three.((directly shut down again....not sure TextView changed or not.<br/></p>
  
  <p>I want fragment three would immediately renew data as soon as received.
  What should I do ?</p>
  
  <p>Here is code in MainActivity that describe action after scanActivity deal with QR code .<br/></p>
  
  <pre><code>@Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode,resultCode,data);
          if(requestCode == REQUEST_CODE &amp;&amp; resultCode == RESULT_OK) {
              if(data != null) {
                  final Barcode barcode = data.getParcelableExtra("barcode");
                  parkingNumtmp = barcode.displayValue;
                  Date date = new Date();
                  final String time = simpleDateFormat.format(date);
                  sharedPreferences.edit().putString("parkingNum", parkingNumtmp).putString("time", time).commit();
  
      *//I not sure following sentence correct or not.*
      *//I guess TextView.post is the problem , how to revise?
      *//because I want renew data immediately
  
                  textView_parkingNoVal.post(new Runnable() {
                      @Override
                      public void run() {
  
      *//I define a method in fragment three to set TextView which in fragment three*
                          FragmentThree runParking = new FragmentThree();
                          runParking.setParkingText("No. : " + parkingNumtmp + "\t(" + time +")");
                      }
                  });
              }
          }
      }
  </code></pre>
  
  <p>In MainActivity ,there is the function defined in interface which is in fragment three.<br/>
  (I guess <strong><em>TextView.post</em></strong> is the problem ,am I right? )</p>
  
  <pre><code>@Override
      public void OnFragmentTwoReady() {
  
          button_scan = (Button) findViewById(R.id.button_scan);
  
          button_scan.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  Intent intent = new Intent(MainActivity.this, ScanActivity.class);
                  startActivityForResult(intent, REQUEST_CODE);
              }
          }) ;
  
  
      }
  
      @Override
      public void OnFragmentThreeReady() {
  
          button_find = (Button) findViewById(R.id.button_find);
  
          sharedPreferences = getSharedPreferences("Data", 0);
          if(sharedPreferences.contains("parkingNum") &amp;&amp; sharedPreferences.contains("time")) {
              parkingNumtmp = sharedPreferences.getString("parkingNum", "");
              textView_parkingNoVal.setText("Parking No. : " + parkingNumtmp + "\t(" + sharedPreferences.getString("time", "") + ")");
          }
  
          Date date = new Date();
          textView_parkingNoVal = (TextView) findViewById(R.id.textView_parkingNoVal);
  
          textView_parkingNoVal.post(new Runnable() {
              @Override
              public void run() {
                  textView_parkingNoVal.setText("Parking No. : " + parkingNumtmp + "\t(" + time +")");
              }
          });
  
          button_find.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  if(parkingNumtmp != null) {
                      try {
  
                      catch {
          });
  
      }
  </code></pre>
  
  <p>Following code is in Fragment Three.</p>
  
  <pre><code>public class FragmentThree extends Fragment {
  
      private OnFragmentThreeReadyListener callback;
  
      public void onCreate(Bundle savedInstanceState){
          super.onCreate(savedInstanceState);
  
      }
  
      @Override
      public void onAttach(Context context){
          super.onAttach(context);
          try{
              callback = (OnFragmentThreeReadyListener) context;
          }catch (ClassCastException e) {
              throw new ClassCastException(context.toString() + "must implements OnFragmentThreeListener");
          }
      }
  
      @Override
      public View onCreateView(LayoutInflater inflater,  ViewGroup container,  Bundle savedInstanceState) {
          View rootView = inflater.inflate(R.layout.fragment_three_layout,container,false);
  
  
          TextView textView_userIDVal = (TextView) rootView.findViewById(R.id.textView_userIDVal);
          return rootView;
      }
  
      // I use this method to change content of TextView in MainActivity
      public void setNumText(String str){
          Num.setText("No:"+str);
  
  
      @Override
      public void onActivityCreated(@Nullable Bundle savedInstanceState) {
          super.onActivityCreated(savedInstanceState);
      }
  
  
      public interface OnFragmentThreeReadyListener {
          void OnFragmentThreeReady();
      }
  }
  </code></pre>
  
  <p>Question 2:<br/></p>
  
  <p>I have a confusion that if I need to renew TextView in Fragment ,can I create a function in fragment to change TextView and new a Fragment object in MainActivity to renew it? <br/>
  <strong><em>onFragmentThreeReady( )</em></strong> still have to exist? In mainActivity ,is it still belong to fragment?<br/>
  And where should I put my TextView and use setText. Is MainActivity ? Or Fragment?</p>
  
  <p>Question 3:<br/>
  In such of my case,why cause app shut down?<br/>
  Is there any problem about lifecycle? <br/></p>
  
  <p>There is Logcat.</p>
  
  <pre><code>10-09 00:02:43.090 551-646/? E/WifiStateMachine: WifiStateMachine CMD_START_SCAN source -2 txSuccessRate=1.95 rxSuccessRate=1.87 targetRoamBSSID=00:00:00:00:00:00 RSSI=-29
  10-09 00:03:03.310 551-646/? E/WifiStateMachine: WifiStateMachine CMD_START_SCAN source -2 txSuccessRate=1.05 rxSuccessRate=1.91 targetRoamBSSID=00:00:00:00:00:00 RSSI=-27
  10-09 00:03:03.310 551-646/? E/WifiStateMachine: WifiStateMachine starting scan for "我跑很慢"WPA_PSK with 2457
  10-09 00:03:22.160 247-6440/? E/IA NVM: ERROR:: NVM: Invalid AF orientation!
  10-09 00:03:22.340 247-6440/? E/Arcsoft: BeautyShot SDK=ArcSoft_BeautyShot_3.0.0.1215_B2 Build:2015/01/04
  10-09 00:03:22.340 247-6440/? E/Arcsoft: BeautyShot version: ArcSoft_FlawlessFace_3.0.0.1215, 12/26/2014
  10-09 00:03:22.340 247-6440/? E/CamHAL_ABS: BS engine.Init(DataTypeVideo) OK
  10-09 00:03:22.350 247-6440/? E/Camera_ISP: detachObserver failed!
  10-09 00:03:22.350 247-6440/? E/Camera_ISP: detachObserver failed!
  10-09 00:03:22.350 247-6440/? E/Camera_ISP: detachObserver failed!
  10-09 00:03:22.360 247-6440/? E/Camera_ISP: detachObserver failed!
  10-09 00:03:22.360 247-6440/? E/Camera_ISP: detachObserver failed!
  10-09 00:03:22.630 247-28892/? E/Camera_V4L2DevBase: error subscribing event 4: Invalid argument
  10-09 00:03:23.090 551-646/? E/WifiStateMachine: WifiStateMachine CMD_START_SCAN source -2 txSuccessRate=0.93 rxSuccessRate=0.87 targetRoamBSSID=00:00:00:00:00:00 RSSI=-37
  10-09 00:03:23.090 551-646/? E/WifiStateMachine: WifiStateMachine starting scan for "我跑很慢"WPA_PSK with 2457
  10-09 00:03:24.320 27285-27285/tw.com.flag.parking22 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                         Process: tw.com.flag.parking22, PID: 27285
                                                                         java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
                                                                             at tw.com.flag.parking22.FragmentThree.setParkingText(FragmentThree.java:80)
                                                                             at tw.com.flag.parking22.MainActivity$2.run(MainActivity.java:127)
                                                                             at android.os.Handler.handleCallback(Handler.java:739)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                             at android.os.Looper.loop(Looper.java:135)
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5264)
                                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                                             at java.lang.reflect.Method.invoke(Method.java:372)
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
  10-09 00:03:24.630 551-1248/? E/ActivityManager: Invalid thumbnail dimensions: 479x479
  10-09 00:03:26.210 551-637/? E/InputDispatcher: channel '2781942a tw.com.flag.parking22/tw.com.flag.parking22.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
  10-09 00:03:26.210 551-637/? E/InputDispatcher: channel '335f0b92 tw.com.flag.parking22/tw.com.flag.parking22.ScanActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
  10-09 00:03:26.250 229-1319/? E/BufferQueueProducer: [SurfaceView] queueBuffer: BufferQueue has been abandoned
  10-09 00:03:26.250 247-28882/? E/Surface: queueBuffer: error queuing buffer to SurfaceTexture, -19
  10-09 00:03:26.250 247-28882/? E/Camera_PreviewThread: Surface::queueBuffer returned error -19
  10-09 00:03:26.400 247-28882/? E/IMGSRV: :0: gralloc_module_unlock: Buffer is already unlocked (78859)
  10-09 00:03:26.400 229-270/? E/BufferQueueProducer: [SurfaceView] cancelBuffer: BufferQueue has been abandoned
  10-09 00:03:26.400 229-630/? E/BufferQueueProducer: [SurfaceView] cancelBuffer: BufferQueue has been abandoned
  10-09 00:03:26.400 229-1319/? E/BufferQueueProducer: [SurfaceView] cancelBuffer: BufferQueue has been abandoned
  10-09 00:03:26.410 229-268/? E/BufferQueueProducer: [SurfaceView] cancelBuffer: BufferQueue has been abandoned
  10-09 00:03:26.410 229-5752/? E/BufferQueueProducer: [SurfaceView] cancelBuffer: BufferQueue has been abandoned
  10-09 00:03:26.410 229-270/? E/BufferQueueProducer: [SurfaceView] cancelBuffer: BufferQueue has been abandoned
  10-09 00:03:41.190 247-247/? E/IA NVM: ERROR:: NVM: Invalid AF orientation!
  10-09 00:03:41.380 247-247/? E/Arcsoft: BeautyShot SDK=ArcSoft_BeautyShot_3.0.0.1215_B2 Build:2015/01/04
  10-09 00:03:41.380 247-247/? E/Arcsoft: BeautyShot version: ArcSoft_FlawlessFace_3.0.0.1215, 12/26/2014
  10-09 00:03:41.380 247-247/? E/CamHAL_ABS: BS engine.Init(DataTypeVideo) OK
  10-09 00:03:41.380 247-247/? E/Camera_ISP: detachObserver failed!
  10-09 00:03:41.380 247-247/? E/Camera_ISP: detachObserver failed!
  10-09 00:03:41.380 247-247/? E/Camera_ISP: detachObserver failed!
  10-09 00:03:41.380 247-247/? E/Camera_ISP: detachObserver failed!
  10-09 00:03:41.380 247-247/? E/Camera_ISP: detachObserver failed!
  10-09 00:03:41.610 247-29164/? E/Camera_V4L2DevBase: error subscribing event 4: Invalid argument
  10-09 00:03:42.200 28976-28976/tw.com.flag.parking22 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                         Process: tw.com.flag.parking22, PID: 28976
                                                                         java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
                                                                             at tw.com.flag.parking22.FragmentThree.setParkingText(FragmentThree.java:80)
                                                                             at tw.com.flag.parking22.MainActivity$2.run(MainActivity.java:127)
                                                                             at android.os.Handler.handleCallback(Handler.java:739)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                             at android.os.Looper.loop(Looper.java:135)
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5264)
                                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                                             at java.lang.reflect.Method.invoke(Method.java:372)
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
  10-09 00:03:42.500 551-1134/? E/ActivityManager: Invalid thumbnail dimensions: 479x479
  10-09 00:03:45.190 551-637/? E/InputDispatcher: channel '29556c1c Toast (server)' ~ Channel is unrecoverably broken and will be disposed!
  10-09 00:03:45.190 551-637/? E/InputDispatcher: channel '255a144c tw.com.flag.parking22/tw.com.flag.parking22.ScanActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
  10-09 00:03:45.250 229-270/? E/BufferQueueProducer: [SurfaceView] queueBuffer: BufferQueue has been abandoned
  10-09 00:03:45.250 247-29154/? E/Surface: queueBuffer: error queuing buffer to SurfaceTexture, -19
  10-09 00:03:45.250 247-29154/? E/Camera_PreviewThread: Surface::queueBuffer returned error -19
  10-09 00:03:45.390 247-29153/? E/Camera_AtomAIQ: Error dequeuing statistics: -11
  10-09 00:03:45.390 247-29154/? E/IMGSRV: :0: gralloc_module_unlock: Buffer is already unlocked (80088)
  </code></pre>
  
  <p>If there is need to post code,I will post it as soon as I can. Thank you!</p>