title: Trouble with Fragment TextWatcher to Activity communication
body: <p>Having problems getting Fragment to Activity communication working properly..</p>
  
  <p>I have an edit box in a Fragment and I need it to send its value back to the main activity after each edit.</p>
  
  <p>Fragment Class:</p>
  
  <pre><code>public class FragA extends Fragment {
  
      FragAInt mCallback;
  
      public interface FragAInt{
          public void onEditBoxEdited(String boxContent);
      }
  
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
                               Bundle savedInstanceState) {
          // Inflate the layout for this fragment
         View view =  inflater.inflate(R.layout.fragment_a, container, false);
         final View et = view.findViewById(R.id.eboxa) ;
  
          ((EditText) et).addTextChangedListener(new TextWatcher() {
              @Override
              public void onTextChanged(CharSequence s, int start, int before, int count) {
  
                  // TODO Auto-generated method stub
  
              }
              @Override
              public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  
                  // TODO Auto-generated method stub
              }
  
              @Override
              public void afterTextChanged(Editable s) {
                  mCallback.onEditBoxEdited(((EditText) et).getText().toString());
              }
          });
          return view;
      }
  }
  </code></pre>
  
  <p>MainActivity</p>
  
  <pre><code>public class MainActivity extends FragmentActivity implements FragA.FragAInt{
  
      private String editBoxVal;
  
      public void onEditBoxEdited(String editBoxContent){
          this.editBoxVal= editBoxContent;
      }
  }
  </code></pre>
  
  <p>The app will run but it will crash as soon as you type in the exit box with a null pointer exception.</p>
  
  <p>Where have I gone wrong?</p>
  
  <p>Full error:</p>
  
  <pre><code>java.lang.NullPointerException: 
  Attempt to invoke interface method 'void nemo.myapplication.FragA$FragAInt.onEditBoxEdited(java.lang.String)' on a null object reference
  at nemo.myapplication.FragA$1.afterTextChanged(FragA.java:49)
  at android.widget.TextView.sendAfterTextChanged(TextView.java:8017)
  at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:10182)
  at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1043)
  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:560)
  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:492)
  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:34)
  at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:685)
  at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:445)
  at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:340)
  at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:78)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:234)
  at android.app.ActivityThread.main(ActivityThread.java:5526)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
  </code></pre>