title: overriding edtitext's getText() method causes stackoverflow, why?
body: <p>i am subclassing TextInputEditText so that i can add a string to a password editText field.  here is the subclass:</p>
  
  <pre><code>public class CustomInputEditTextWithPrefix extends TextInputEditText {
  
  
  public CustomInputEditTextWithPrefix(Context context) {
      super(context);
  }
  
  public CustomInputEditTextWithPrefix(Context context, AttributeSet attrs) {
      super(context, attrs);
  }
  
  public CustomInputEditTextWithPrefix(Context context, AttributeSet attrs, int defStyleAttr) {
      super(context, attrs, defStyleAttr);
  }
  
  @Override
  public Editable getText() {
      Editable s = (Editable) super.getText(); //why is this causing infinite stackoverflow ?
      if(s!=null &amp;&amp; s.length()&gt;0) {
        //salt the password
          Editable pwSalt = new SpannableStringBuilder("my secret string");
          s= pwSalt.append(s);
      }
       return s;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>and the imlementation in xml is:</p>
  
  <pre><code>&lt;com.myapp.ui.auth.ui.customviews.CustomInputEditTextWithPrefix
             android:id="@+id/password"
             android:inputType="textPassword" /&gt;
  </code></pre>
  
  <p>my issue is that when i execute the code the getText() override method keeps getting called over and over again. i took out the inputType  but its still being called until stackoverflow.  my idea was to append to the front of every string in the TextInputEditText a secret hash.  What am i doing wrong ?</p>